Red Hat Training
A Red Hat training course is available for Red Hat Fuse
59.2. 設定を使用したインターセプターの追加
概要
インターセプターをエンドポイントに割り当てる最も簡単な方法は、設定ファイルを使用することです。エンドポイントにアタッチされる各インターセプターは、標準の Spring Bean を使用して設定されます。その後、インターセプターの Bean は Apache CXF 設定要素を使用して適切なインターセプターチェーンに追加できます。
ランタイムコンポーネントに、関連付けられたインターセプターチェーンが含まれる場合には、特殊な Spring 要素を使用して設定変更ができます。コンポーネントの各要素には、インターセプターチェーンを指定するための標準的な子セットがあります。コンポーネントに関連付けられたインターセプターチェーンごとに 1 つの子があります。子は、チェーンに追加するインターセプターの Bean を一覧表示します。
設定要素
表59.1「インターセプターチェーン設定要素」 では、インターセプターをランタイムコンポーネントにアタッチするための 4 つの設定要素を説明します。
表59.1 インターセプターチェーン設定要素
| 要素 | 説明 |
|---|---|
| エンドポイントのインバウンドインターセプターチェーンに追加するインターセプターを設定する Bean の一覧が含まれます。 | |
| エンドポイントのアウトバウンドインターセプターチェーンに追加するインターセプターを設定する Bean の一覧が含まれます。 | |
| エンドポイントのインバウンド障害処理インターセプターチェーンに追加するインターセプターを設定する Bean の一覧が含まれます。 | |
| エンドポイントのアウトバウンド障害処理インターセプターチェーンに追加するインターセプターを設定する Bean の一覧が含まれます。 |
インターセプターチェーン設定要素はすべて list 子要素を取ります。list 要素には、チェーンにアタッチされるインターセプターごとに子が 1 つあります。インターセプターは、インターセプターを直接設定する bean 要素または、インターセプターを設定する bean 要素を参照する ref 要素を使用して指定できます。
例
例59.1「インターセプターのバスへの割り当て」 は、バスのインバウンドインターセプターチェーンにインターセプターを割り当てるための設定です。
例59.1 インターセプターのバスへの割り当て
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cxf="http://cxf.apache.org/core"
xmlns:http="http://cxf.apache.org/transports/http/configuration"
xsi:schemaLocation="
http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
...
<bean id="GZIPStream" class="demo.stream.interceptor.StreamInterceptor"/>
<cxf:bus>
*<cxf:inInterceptors>
<list>
<ref bean="GZIPStream"/>
</list>
</cxf:inInterceptors>*
</cxf:bus>
</beans>例59.2「JAX-WS サービスプロバイダーへのインターセプターの割り当て」 は、インターセプターを JAX-WS サービスのアウトバウンドインターセプターチェーンに割り当てるための設定です。
例59.2 JAX-WS サービスプロバイダーへのインターセプターの割り当て
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:wsa="http://cxf.apache.org/ws/addressing"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<jaxws:endpoint ...>
*<jaxws:outInterceptors>
<list>
<bean id="GZIPStream" class="demo.stream.interceptor.StreamInterceptor" />
</list>
</jaxws:outInterceptors>*
</jaxws:endpoint>
</beans>補足情報
Spring 設定を使用してエンドポイントを設定する方法は、パートIV「Web サービスエンドポイントの設定」 を参照してください。