4.2. JAX-WS ハンドラーの設定

JAX-WS は標準 Java API で、Web サービスサポートを提供します。Web サービスが JAX-WS ハンドラーの仕組みを用いて、メッセージ (問題) の送受信時にユーザーが指定するクラスを呼び出します。そのため、このハンドラーはメッセージのパイプラインにインストールされ、必要に応じてこれを使いメッセージヘッダーやボディを操作します。
通常、プログラムで Web サービスを表す Java インターフェースにハンドラーをインストールするか、HandlerChain アノテーションでインストールします。ただし、BPEL にデプロイされるプロセスの場合、JAX-WS サービスはデプロイ時に動的に作成されます。
そのため、JAX-WS ハンドラーチェインの設定と、BPEL プロセス対応のためにデプロイされるよう動的に作成された Web サービスを関連付けるには、BPEL プロセスの定義と配備記述子と一緒に jws_handler.xml と呼ばれるファイルを置く必要があります。
以下に jws_handler.xml ファイルの例を挙げています。この例は、service_handler quick-startで使用しています。
<handler-chains xmlns="http://java.sun.com/xml/ns/javaee" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee">
    <handler-chain>
  <handler>
   <handler-name>JAXWSHandler</handler-name>
   <handler-class>org.jboss.soa.bpel.examples.jaxws.JAXWSHandler</handler-class>
   <init-param>
       <param-name>TestParam</param-name>
       <param-value>TestValue</param-value>
   </init-param>
  </handler>
    </handler-chain>
</handler-chains>
このファイルは、標準の JAX-WS ハンドラーチェーン設定形式です。名前とクラスを定義するハンドラーをそれぞれ用いることで、ハンドラー要素は 1 つでも、複数でも指定できます。任意でハンドラー設定は、ハンドラー実装の init メソッドに渡す初期化パラメーターを提供します。

注記

この仕組みは、JAX-WS ハンドラーをプロバイダー Web サービスにインストールします。現在、BPEL プロセスから外部の Web サービスを呼び出す際に利用するクライアントのエンドポイントには、JAX-WS ハンドラーを設定できません。
この仕組みのサンプルについては、service_handler quick-start を参照してください。