36.1 ハンドラフレームワークとは
ハンドラフレームワークとは,SOAPメッセージを送受信するときに,JAX-WSエンジン内で処理をインターセプトして,処理を追加する機能(フレームワーク)です。WebサービスクライアントとWebサービス実装クラスまたはプロバイダ実装クラスの間に複数のハンドラを追加し,Webサービスの機能を拡張できます。
ハンドラフレームワークの処理の流れを次の図に示します。
ハンドラの処理内容は,アウトバウンド/インバウンド,および要求/応答の組み合わせごとに異なります。組み合わせと処理内容を次の表に示します。
アウトバウンド /インバウンド |
要求/ 応答 |
処理内容 |
---|---|---|
アウトバウンド |
要求 |
Webサービスクライアントが要求メッセージを送信する動作を表します。 この処理で「メッセージを振り分ける」とは,要求メッセージをWebサービスに送信することを意味します。 |
応答 |
Webサービス実装クラスまたはプロバイダ実装クラスが応答メッセージを送信する動作を表します。 この処理で「メッセージを振り分ける」とは,応答メッセージをWebサービスクライアントに送信することを意味します。ただし,one-wayオペレーションでは応答メッセージを送信しないため,アウトバウンドは動作しません。 |
|
インバウンド |
要求 |
Webサービス実装クラスまたはプロバイダ実装クラスが要求メッセージを受信する動作を表します。 この処理で「メッセージを振り分ける」とは,要求メッセージをWebサービス実装クラスまたはプロバイダ実装クラスに割り当てることを意味します。 |
応答 |
Webサービスクライアントが応答メッセージを受信する動作を表します。 この処理で「メッセージを振り分ける」とは,応答メッセージをWebサービスクライアントに割り当てることを意味します。ただし,one-wayオペレーションでは応答メッセージを受信しないため,インバウンドは動作しません。 |
ハンドラでは,メッセージコンテキストを取得できます。メッセージコンテキストについては,「19.2.5 メッセージコンテキストの使用」を参照してください。
ハンドラフレームワークのアーキテクチャについては,JAX-WS 2.2仕様を参照してください。