Menu Close
43.10.2. Spring の設定
概要
ハンドラーチェーンを使用するようにエンドポイントを設定する最も簡単な方法は、エンドポイントの設定内でチェーンを定義することです。これは、jaxwxs:handlers
子要素をエンドポイントを設定する要素に追加して行います。
設定ファイルを介して追加したハンドラーチェーンは、プログラムで設定したハンドラーチェーンよりも優先されます。
手順
ハンドラーチェーンをロードするようエンドポイントを設定するには、以下を行います。
エンドポイントにまだ設定要素がない場合は、それを追加します。
Apache CXF エンドポイントの設定に関する詳細は、「17章JAX-WS エンドポイントの設定」を参照してください。
-
jaxws:handlers
子要素をエンドポイントの設定要素に追加します。 チェーンの各ハンドラーに対して、ハンドラーを実装するクラスを指定する
bean
要素を追加します。ハンドラー実装が複数の場所で使用される場合は、
ref
要素を使用してbean
要素を参照できます。
ハンドラー要素
jaxws:handlers
要素は、エンドポイントの設定でハンドラーチェーンを定義します。すべての JAX-WS エンドポイント設定要素の子として表示されます。具体的には、以下のとおりです。
-
jaxws:endpoint
はサービスプロバイダーを設定します。 -
jaxws:server
もサービスプロバイダーを設定します。 -
jaxws:client
はサービスコンシューマーを設定します。
ハンドラーをハンドラーチェーンに追加する方法は 2 つあります。
-
実装クラスを定義する
bean
要素を追加する -
ref
要素を使用して、設定ファイルの他の場所から名前付きbean
要素を参照する
ハンドラーは、設定で定義された順序のとおりに実行されます。論理ハンドラーとプロトコルハンドラーが混在する場合は、順序が変更される場合があります。ランタイムは、設定で指定した基本順序を維持しつつ、適切な順序に並べ替えます。
例
例43.17「Spring でハンドラーチェーンを使用するエンドポイントの設定」に、ハンドラーチェーンを読み込むサービスプロバイダーの設定を示します。
例43.17 Spring でハンドラーチェーンを使用するエンドポイントの設定
<beans ... xmlns:jaxws="http://cxf.apache.org/jaxws" ... schemaLocation="... http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd ..."> <jaxws:endpoint id="HandlerExample" implementor="org.apache.cxf.example.DemoImpl" address="http://localhost:8080/demo"> <jaxws:handlers> <bean class="demo.handlers.common.LoggingHandler" /> <bean class="demo.handlers.common.AddHeaderHandler" /> </jaxws:handlers> </jaws:endpoint> </beans>