Menu Close

49.5. クライアントエンドポイントの設定

概要

機能およびプロバイダーの登録および設定により、ベース javax.ws.rs.client.Client オブジェクトの機能を拡張できます。

以下の例は、ロギング機能、カスタムエンティティープロバイダー、および prettyLogging プロパティーを true に設定するよう設定されたクライアントを示しています。

// Java
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Client;
import org.apache.cxf.feature.LoggingFeature;
...
Client client = ClientBuilder.newClient();
client.register(LoggingFeature.class)
      .register(MyCustomEntityProvider.class)
      .property("LoggingFeature.prettyLogging","true");

オブジェクト登録用の設定可能な API

Client クラスはオブジェクトの登録用に Configurable API をサポートします。これにより、register メソッドの複数のバリアントが提供されます。ほとんどの場合、以下の例にあるようにクラスまたはオブジェクトインスタンスのいずれかを登録します。

client.register(LoggingFeature.class)
client.register(new LoggingFeature())

register バリアントの詳細は、Configurable に関する参考ドキュメントを参照してください。

クライアントで設定できるもの

クライアントエンドポイントの以下の側面を設定できます。

  • 機能
  • プロバイダー
  • プロパティー
  • フィルター
  • インターセプター

機能

javax.ws.rs.core.Feature は、追加の機能または機能を JAX-RS クライアントに追加するプラグインです。多くの場合、この機能は必要な機能を提供するために 1 つまたは複数のインターセプターをインストールします。

プロバイダー

プロバイダーとは、マッピング機能を提供する特定のクライアントプラグインです。JAX-RS 2.0 仕様は、以下のようなプロバイダーを定義します。

エンティティープロバイダー
エンティティープロバイダーは、特定のメディア型と Java 型間のマッピング機能を提供します。詳細は 「リクエストとレスポンスの解析」 を参照してください。
例外マッピングプロバイダー
例外マッピングプロバイダー は、チェックされたランタイム例外を Response のインスタンスにマッピングします。
コンテキストプロバイダー
コンテキストプロバイダーはサーバー側で使用され、リソースクラスおよびその他のサービスプロバイダーにコンテキストを提供します。

フィルター

JAX-RS 2.0 フィルターは、メッセージ処理パイプラインのさまざまなポイント (拡張ポイント) で URI、ヘッダー、およびその他のコンテキストデータへのアクセスを提供するプラグインです。詳細は、61章JAX-RS 2.0 フィルターおよびインターセプター を参照してください。

インターセプター

JAX-RS 2.0 インターセプターは、読み書き中のリクエストまたはレスポンスのメッセージボディーにアクセスするためのプラグインです。詳細は、61章JAX-RS 2.0 フィルターおよびインターセプター を参照してください。

プロパティー

クライアントに 1 つ以上のプロパティーを設定すると、登録機能または登録されたプロバイダーの設定をカスタマイズできます。

その他の設定可能な型

javax.ws.rs.client.Client (および javax.ws.rs.client.ClientBuilder) オブジェクトを設定するだけでなく、WebTarget オブジェクトも設定できます。WebTarget オブジェクトの設定を変更すると、基盤のクライアント設定はディープコピーされ、新しい WebTarget 設定が指定されます。そのため、元の Client オブジェクトの設定を変更せずに、WebTarget オブジェクトの設定を変更することができます。