59.3.2. インターセプタープロバイダー API の使用
概要 リンクのコピーリンクがクリップボードにコピーされました!
インターセプターは、インターセプタープロバイダーインターフェイス に示されている InterceptorProvider インターフェイスを実装するコンポーネントであればどれでも登録できます。
インターセプタープロバイダーインターフェイス
インターフェイスの 4 つのメソッドにより、エンドポイントのインターセプターチェーンを Java List
オブジェクトとして取得できます。Java List
オブジェクトによって提供されるメソッドを使用することで、開発者は任意のチェーンにインターセプターを追加および削除できます。
手順 リンクのコピーリンクがクリップボードにコピーされました!
InterceptorProvider API を使用してインターセプターをランタイムコンポーネントのインターセプターチェーンに割り当てるには、以下を実行する必要があります。
インターセプターが割り当てられるチェーンを使用してランタイムコンポーネントへのアクセスを取得します。
開発者は、Apache CXF 固有の API を使用して標準の Java アプリケーションコードからランタイムコンポーネントにアクセスする必要があります。ランタイムコンポーネントは通常、JAX-WS または JAX-RS アーティファクトを基盤の Apache CXF オブジェクトにキャストすることでアクセスできます。
- インターセプターのインスタンスを作成します。
- 適切な get メソッドを使用して、目的のインターセプターチェーンを取得します。
List
オブジェクトのadd()
メソッドを使用してインターセプターをインターセプターチェーンにアタッチします。通常、このステップはインターセプターチェーンの取得と組み合わされます。
インターセプターをコンシューマーに取り付け リンクのコピーリンクがクリップボードにコピーされました!
プログラムでコンシューマーにインターセプターを取り付け は、JAX-WS コンシューマーのインバウンドインターセプターチェーンにインターセプターを割り当てるコードです。
プログラムでコンシューマーにインターセプターを取り付け
プログラムでコンシューマーにインターセプターを取り付け のコードは、以下を行います。
コンシューマーの JAX-WS Service
オブジェクトを作成します。
コンシューマーのターゲットアドレスを提供する Service
オブジェクトにポートを追加します。
サービスプロバイダーでメソッドを呼び出すために使用されるプロキシーを作成します。
プロキシーを org.apache.cxf.endpoint.Client
型にキャストします。
インターセプターのインスタンスを作成します。
インターセプターをインバウンドインターセプターチェーンに割り当てます。
インターセプターのサービスプロバイダーへの割り当て リンクのコピーリンクがクリップボードにコピーされました!
プログラムを使用したインターセプターのサービスプロバイダーへの割り当て は、サービスプロバイダーのアウトバウンドインターセプターチェーンにインターセプターを割り当てるコードです。
プログラムを使用したインターセプターのサービスプロバイダーへの割り当て
プログラムを使用したインターセプターのサービスプロバイダーへの割り当て のコードは、以下を行います。
基盤となる Apache CXF オブジェクトへのアクセスを提供する ServerFactoryBean
オブジェクトを作成します。
Apache CXF がエンドポイントを表すために使用する Server
オブジェクトを取得します。
サービスプロバイダーの Apache CXF EndpointImpl
オブジェクトを取得します。
インターセプターのインスタンスを作成します。
エンドポイントのアウトバウンドインターセプターチェーンにインターセプターを割り当てます。
バスへのインターセプターの取り付け リンクのコピーリンクがクリップボードにコピーされました!
バスへのインターセプターの取り付け は、バスのインバウンドインターセプターチェーンにインターセプターを割り当てるコードです。
バスへのインターセプターの取り付け
バスへのインターセプターの取り付け のコードは、以下を行います。
ランタイムインスタンスのデフォルトのバスを取得します。
インターセプターのインスタンスを作成します。
インターセプターをインバウンドインターセプターチェーンに割り当てます。
WatchInterceptor
は、ランタイムインスタンスによって作成されるすべてのエンドポイントのインバウンドインターセプターチェーンにアタッチされます。