9.17. 共通 API


本項は Web サービスエンドポイントWeb サービスクライアント に同等に当てはまる概念について説明しています。

9.17.1. ハンドラーフレームワーク

ハンドラーフレームワークは JAX-WS プロトコルバインディングによってクライアントおよびサーバー側両方のランタイムで実装されます。 バインディングプロバイダーとして集合的に知られるプロキシおよび Dispatch インスタンスはそれぞれプロトコルバインディングを使ってその抽出機能を特定のプロトコルにバインドします。
クライアントおよびサーバー側ハンドラーはハンドラーチェーンとして知られる順序付けされた一覧に並べられます。 ハンドラーチェーン内のハンドラ群はメッセージが送信または受信される度に呼び出されます。 インバウンドメッセージはバインディングプロバイダー処理の前に処理されます。 アウトバウンドメッセージはあらゆるバインディングプロバイダー処理の後に処理されます。
ハンドラーは、 インバウンドメッセージとアウトバウンドメッセージにアクセスして編集、 およびプロパティセットの管理を行うメソッドを提供するメッセージコンテキストで呼び出されます。 メッセージコンテキストのプロパティはハンドラー間での通信やハンドラーとクライアントおよびサービス実装間での通信を容易にするために使用することができます。 異なるメッセージコンテキストタイプで異なるタイプのハンドラーが呼び出されます。

9.17.1.1. 論理ハンドラー

メッセージコンテキストプロパティおよびメッセージペイロードでのみ動作するハンドラです。 論理ハンドラーはプロトコルにとらわれないため、 メッセージのプロトコル固有部分には作用できません。 論理ハンドラーは javax.xml.ws.handler.LogicalHandler を実装するハンドラーになります。

9.17.1.2. プロトコルハンドラー

メッセージコンテキストプロパティおよびプロトコル固有メッセージでのみ動作するハンドラです。 プロトコルハンドラは特定のプロトコルに固有となるため、 メッセージのプロトコル特定部分にアクセスして変更することができます。 プロトコルハンドラーは javax.xml.ws.handler.LogicalHandler 以外の javax.xml.ws.handler.Handler から生じたあらゆるインターフェースを実装するハンドラーになります。

9.17.1.3. サービスエンドポイントのハンドラー

サービスエンドポイントで、 ハンドラーは @HandlerChain アノテーションを使って定義されます。
@WebService
@HandlerChain(file = "jaxws-server-source-handlers.xml")
public class SOAPEndpointSourceImpl
{
...
}
Copy to Clipboard Toggle word wrap
ハンドラーチェーンファイルの場所は 2 種類の形式に対応しています。
1. externalForm での完全な java.net.URL。 (例、 http://myhandlers.foo.com/handlerfile1.xml)
2. ソースファイルまたはクラスファイルからの相対パス。 (例、 bar/handlerfile1.xml)

9.17.1.4. サービスクライアントのハンドラー

クライアント側で、 ハンドラーは SEI で @HandlerChain アノテーションを使用して、 あるいは API を使って動的に設定することができます。
Service service = Service.create(wsdlURL, serviceName);
Endpoint port = (Endpoint)service.getPort(Endpoint.class);
  
BindingProvider bindingProvider = (BindingProvider)port;
List<Handler> handlerChain = new ArrayList<Handler>();
handlerChain.add(new LogHandler());
handlerChain.add(new AuthorizationHandler());
handlerChain.add(new RoutingHandler());
bindingProvider.getBinding().setHandlerChain(handlerChain); // important!
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat