Red Hat Training
A Red Hat training course is available for Red Hat Fuse
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>