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>