18.2. JAX-RS クライアントエンドポイントの設定
18.2.1. JAX-RS クライアントエンドポイントの定義
クライアントプロキシーの挿入
クライアントプロキシー Bean を XML 言語 (BlueprintXML または SpringXML) でインスタンス化する主なポイントは、別の Bean に挿入し、クライアントプロキシーを使用して REST サービスを呼び出すことができるようにすることです。XML でクライアントプロキシー Bean を作成するには、jaxrs:client
要素を使用します。
Namespaces
JAX-RS クライアントエンドポイントは、サーバーエンドポイントとは 異なる XML 名前空間を使用して定義されます。次の表は、どの XML 言語にどの名前空間を使用するかを示しています。
XML 言語 | クライアントエンドポイントの namespace |
---|---|
ブループリント | |
Spring |
基本のクライアントエンドポイント定義
次の例は、BlueprintXML または SpringXML でクライアントプロキシー 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>