59.2. 設定を使用したインターセプターの追加
概要
インターセプターをエンドポイントに割り当てる最も簡単な方法は、設定ファイルを使用することです。エンドポイントにアタッチされる各インターセプターは、標準の Spring Bean を使用して設定されます。その後、インターセプターの Bean は Apache CXF 設定要素を使用して適切なインターセプターチェーンに追加できます。
ランタイムコンポーネントに、関連付けられたインターセプターチェーンが含まれる場合には、特殊な Spring 要素を使用して設定変更ができます。コンポーネントの各要素には、インターセプターチェーンを指定するための標準的な子セットがあります。コンポーネントに関連付けられたインターセプターチェーンごとに 1 つの子があります。子は、チェーンに追加するインターセプターの Bean をリスト表示します。
設定要素
表59.1「インターセプターチェーン設定要素」 では、インターセプターをランタイムコンポーネントにアタッチするための 4 つの設定要素を説明します。
要素 | 説明 |
---|---|
エンドポイントのインバウンドインターセプターチェーンに追加するインターセプターを設定する 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 サービスエンドポイントの設定」 を参照してください。