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

ブループリント

http://cxf.apache.org/blueprint/jaxrs-client

Spring

http://cxf.apache.org/jaxrs-client

基本のクライアントエンドポイント定義

次の例は、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>