36.4 ハンドラの型
JAX-WS 2.2仕様は,論理ハンドラとプロトコルハンドラの二つを定義しています。また,プロトコルハンドラは,SOAPハンドラを定義しています。それぞれのハンドラの説明を次に示します。
- 論理ハンドラ
-
javax.xml.ws.handler.LogicalHandlerインタフェースを実装するハンドラです。
- プロトコルハンドラ
-
javax.xml.ws.handler.LogicalHandlerインタフェースを除く,javax.xml.ws.handler.Handlerのすべての継承インタフェースを実装するハンドラです。
- SOAPハンドラ
-
javax.xml.ws.handler.soap.SOAPHandlerインタフェースを実装するハンドラです。
ハンドラの関係(クラス階層)を次の図に示します。
Application ServerのJAX-WS機能では,論理ハンドラとSOAPハンドラを使用できます。
論理ハンドラでもSOAPハンドラでもないハンドラをハンドラチェインに設定した場合,Webサービス側のJAX-WSエンジンでは,Webサービス初期化時にログおよび標準エラー出力にエラーメッセージが出力されます(KDJW00009-E)。Webサービスクライアント側のJAX-WSエンジンでは,ポートを取得しようとしたときに,javax.xml.ws.WebServiceExceptionがスローされます。
javax.xml.ws.handler.LogicalHandlerインタフェースおよびjavax.xml.ws.handler.soap.SOAPHandlerインタフェースの両方を実装するハンドラ(論理ハンドラでもSOAPハンドラでもあるハンドラ)は論理ハンドラと見なされます。