Menu Close

18.2. JAX-RS クライアントエンドポイントの設定

18.2.1. JAX-RS クライアントエンドポイントの定義

クライアントプロキシーの注入

XML 言語 (Blueprint XML または Spring XML) でクライアントプロキシー Bean をインスタンス化する主なポイントは、別の Bean に注入することです。続いてクライアントプロキシーを使用して REST サービスを呼び出すことができます。XML でクライアントプロキシー Bean を作成するには、jaxrs:client 要素を使用します。

namespace

JAX-RS クライアントエンドポイントは、サーバーエンドポイントとは 異なる XML namespace を使用して定義されます。以下の表で、それぞれの XML 言語に使用する namespace を説明します。

XML 言語クライアントエンドポイントの namespace

Blueprint

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

Spring

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

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

以下の例は、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 サービスの説明を提供します。実際、これは サーバー クラスですが、クライアントによって直接使用されません。指定のクラスは、クライアントプロキシーを動的に構築するために使用されるメタデータにのみ使用されます (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>