36.5 ハンドラチェインの編成と実行順序

ハンドラチェインは,論理ハンドラがSOAPハンドラに先行するように編成されます。論理ハンドラ同士,およびSOAPハンドラ同士の順序は,ハンドラチェインの設定に含まれる順序に従います。

ハンドラチェインの編成の例を次に示します。

図36-3 ハンドラチェインの編成の例

[図データ]

JAX-WSエンジンでは,この図に示すように,次の順序でハンドラが実行されます。

アウトバウンドのメッセージの場合:
L1→L2→L3→S1→S2→S3→S4→S5→S6
インバウンドのメッセージの場合:
S6→S5→S4→S3→S2→S1→L3→L2→L1

アウトバウンドのメッセージに対しては,最初のハンドラからハンドラチェインの順序に,インバウンドのメッセージに対しては,最後のハンドラからハンドラチェインの順序とは逆順に実行されます。

ただし,ハンドラによって例外がスローされた場合,またはhandleMessageメソッドまたはhandleFaultメソッドによってfalseが返された場合は,ハンドラ処理の方向が変わります。

ここでは,handleMessageメソッド,handleFaultメソッド,およびcloseメソッドごとに処理についてそれぞれ説明します。

<この節の構成>
36.5.1 handleMessageメソッドの処理
36.5.2 handleFaultメソッドの処理
36.5.3 closeメソッドの処理