18.2. JAX-RS クライアントエンドポイントの設定
18.2.1. JAX-RS クライアントエンドポイントの定義
クライアントプロキシーの挿入
クライアントプロキシー Bean を XML 言語 (Blueprint XML または Spring XML) でインスタンス化する主なポイントは、別の Bean に挿入し、クライアントプロキシーを使用して REST サービスを呼び出すことができるようにすることです。XML でクライアントプロキシー Bean を作成するには、jaxrs:client
要素を使用します。
namespace
JAX-RS クライアントエンドポイントは、サーバーエンドポイントとは 異なる XML 名前空間を使用して定義されます。次の表は、どの XML 言語にどの名前空間を使用するかを示しています。
XML 言語 | クライアントエンドポイントの namespace |
---|---|
ブループリント | |
Spring |
基本のクライアントエンドポイント定義
次の例は、Blueprint XML または Spring XML でクライアントプロキシー Bean を作成する方法を示しています。
<jaxrs:client id="restClient" address="http://localhost:8080/test/services/rest" serviceClass="org.apache.cxf.systest.jaxrs.BookStoreJaxrsJaxws"/>
基本的なクライアントエンドポイントを定義するには、次の属性を設定する必要があります。
id
- クライアントプロキシーの Bean ID を使用して、XML 設定内の他の Bean にクライアントプロキシーを挿入できます。
address
- address 属性は REST 呼び出しのベース URL を指定します。
serviceClass
-
serviceClass
属性は、ルートリソースクラス (@Path
によりアノテーションが付けられる) を指定して、REST サービスの説明を提供します。実際、これは server クラスですが、クライアントで直接使用されません。指定されたクラスは、クライアントプロキシーを動的に構築するのに使用されるメタデータ (Java リフレクションおよび JAX-RS アノテーションを介して) にのみ使用されます。
ヘッダーの指定
以下のように、jaxrs:headers
子要素を使用して、HTTP ヘッダーをクライアントプロキシーの呼び出しに追加できます。
<jaxrs:client id="restClient" address="http://localhost:8080/test/services/rest" serviceClass="org.apache.cxf.systest.jaxrs.BookStoreJaxrsJaxws" inheritHeaders="true"> <jaxrs:headers> <entry key="Accept" value="text/xml"/> </jaxrs:headers> </jaxrs:client>
18.2.2. jaxrs:client 属性
属性
表18.3「JAX-RS Client Endpoint 属性」jaxrs:client
要素で利用可能な属性を説明します。
Attribute | 説明 |
---|---|
| コンシューマーが要求を行うエンドポイントの HTTP アドレスを指定します。この値は、コントラクトで設定された値を上書きします。 |
| コンシューマーが使用するメッセージバインディングの ID を指定します。有効なバインディング ID のリストは、23章Apache CXF バインディング ID に提供されています。 |
| エンドポイントを管理するバスを設定する Spring Bean の ID を指定します。 |
|
このプロキシーからサブリソースプロキシーが作成された場合に、このプロキシーに設定されたヘッダーを継承するかどうかを指定します。デフォルトは |
| 単純なユーザー名/パスワード認証に使用されるユーザー名を指定します。 |
| 単純なユーザー名/パスワード認証に使用されるパスワードを指定します。 |
|
モデルスキーマをクラスパスリソースとして指定します (例: |
|
サービスインターフェイスまたはリソースクラス ( |
|
JMS トランスポートが使用される特別なケースの JAX-RS エンドポイントのサービス QName を指定します ( |
|
クライアントプロキシーがスレッドセーフかどうかを指定します。デフォルトは |
|
(HTTP の代わりに) 非標準のトランスポート層を選択する場合。特に、このプロパティーを |
|
(Spring のみ) Bean が抽象 Bean であるかどうかを指定します。抽象 Bean は、具体的な Bean 定義の親として機能し、インスタンス化されません。デフォルトは |
| (Spring のみ) エンドポイントがインスタンス化される前にインスタンス化されたかどうかに依存する Bean のリストを指定します。 |
18.2.3. jaxrs:client 子要素
子要素
表18.4「JAX-RS Client Endpoint ポイントの子要素」に jaxrs:client
要素の子要素をまとめます。
要素 | 説明 |
---|---|
| |
| Apache CXF の高度な機能を設定する Bean のリストを指定します。Bean 参照のリストまたは埋め込み Bean のリストのいずれかを提供できます。 |
| 使用されていません。 |
| エンドポイントで使用されるデータバインディングを実装するクラスを指定します。これは、埋め込み Bean 定義を使用して指定されます。詳細は、「データバインディングの指定」 を参照してください。 |
| インバウンド応答を処理するインターセプターのリストを指定します。詳細は、パートVII「Apache CXF インターセプターの開発」 を参照してください。 |
| インバウンド障害メッセージを処理するインターセプターのリストを指定します。詳細は、パートVII「Apache CXF インターセプターの開発」 を参照してください。 |
| アウトバウンド要求を処理するインターセプターのリストを指定します。詳細は、パートVII「Apache CXF インターセプターの開発」 を参照してください。 |
| アウトバウンド障害メッセージを処理するインターセプターのリストを指定します。詳細は、パートVII「Apache CXF インターセプターの開発」 を参照してください。 |
| エンドポイントに渡されるプロパティーのマップを指定します。 |
|
1 つ以上のカスタム JAX-RS プロバイダーをこのエンドポイントに登録できます。この要素の子は、JAX-RS プロバイダーのインスタンス ( |
|
1 つまたは複数の |
|
このエンドポイントに直接リソースモデルを定義します (つまり、 |
| 送信メッセージのヘッダーを設定するために使用されます。詳細は、「ヘッダーの指定」 を参照してください。 |
|
XML メッセージの内容の検証に使用される 1 つ以上の XML スキーマを指定します。この要素には、1 つまたは複数の |