59.2. 設定を使用したインターセプターの追加

概要

インターセプターをエンドポイントに割り当てる最も簡単な方法は、設定ファイルを使用することです。エンドポイントにアタッチされる各インターセプターは、標準の Spring Bean を使用して設定されます。その後、インターセプターの Bean は Apache CXF 設定要素を使用して適切なインターセプターチェーンに追加できます。

ランタイムコンポーネントに、関連付けられたインターセプターチェーンが含まれる場合には、特殊な Spring 要素を使用して設定変更ができます。コンポーネントの各要素には、インターセプターチェーンを指定するための標準的な子セットがあります。コンポーネントに関連付けられたインターセプターチェーンごとに 1 つの子があります。子は、チェーンに追加するインターセプターの Bean を一覧表示します。

設定要素

表59.1「インターセプターチェーン設定要素」 では、インターセプターをランタイムコンポーネントにアタッチするための 4 つの設定要素を説明します。

表59.1 インターセプターチェーン設定要素

要素説明

inInterceptors

エンドポイントのインバウンドインターセプターチェーンに追加するインターセプターを設定する Bean の一覧が含まれます。

outInterceptors

エンドポイントのアウトバウンドインターセプターチェーンに追加するインターセプターを設定する Bean の一覧が含まれます。

inFaultInterceptors

エンドポイントのインバウンド障害処理インターセプターチェーンに追加するインターセプターを設定する Bean の一覧が含まれます。

outFaultInterceptors

エンドポイントのアウトバウンド障害処理インターセプターチェーンに追加するインターセプターを設定する 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 サービスエンドポイントの設定」 を参照してください。