19.3.2. サービス側のハンドラ設定


トランザクショナルなWeb サービスは、サービス呼出しが適切なトランザクションに含まれているように確認しなければなりません。通常、これはパーティシパントの操作に影響を与えるだけで、残りのWeb サービスの操作には影響を与えません。XTS は、トランザクションクライアントに対する方法とほぼ同じ方法で、このタスクを簡素化しビジネスロジックから切り離します。XTS は、受信SOAPのヘッダからコンテキストの詳細を検知、抽出するハンドラを提供し、Web サービスのスレッドとトランザクションを関連付けます。このハンドラは、SOAPのレスポンスをディスパッチするとこの関係を削除し、コンテキストを送信メッセージのヘッダーに書き込みます。これについては、図19.1「SOAPサーバーに登録されているコンテキストハンドラ」で説明しています。
JAX-WSに対するサービス側のハンドラには2つのバージョンがあります。通常のハンドラは、サービスの呼出し時に受信コンテキストにより特定されたトランザクションを再開し、こサービスの呼出しが完了するとこのトランザクションを停止します。他のハンドラを使いローカルコーディネータの介入を行います。受信した親コンテキストが初めて表示されるときに、ローカルのコーディネータサービスが、Webサービスが呼び出される前に再開する従属トランザクションを作成します。当ハンドラは、同じ親コンテキストでサービスの呼び出しが行われるたびにこの従属トランザクションが再開されるようにします。従属のトランザクションが完了すると、親トランザクションと従属トランザクションの関係はなくなります。

注記

従属サービス側のハンドラはAtomic Transaction の従属コーディネータのみを介入することができます。

注記

JAX-RPC は、1.0実装に対してのみ提供されます。

19.3.2.1. JAX-WSサービスコンテキストハンドラ

JAX-WS サーバー側のコンテキストハンドラをデプロイされたWeb Servicesに登録するには、サーバーエンドポイントの実装クラスにハンドラチェーンをインストールする必要があります。javax.jws.WebServiceでアノテーションが付けられたエンドポイント実装のクラスアノテーションはjavax.jws.HandlerChain アノテーションで補完する必要があります。このjavax.jws.HandlerChain アノテーションでアプリケーションがデプロイしたハンドラ設定ファイルを特定します。例についてはdd/jboss/context-handlers.xmlにあるアプリケーション設定ファイル例と、src/com/jboss/jbosstm/xts/demo/servicesにあるエンドポイント実装クラスを参照してください。
通常のJAX-WSサービスのコンテキストハンドラを登録するときに、com.arjuna.mw.wst11.service.JaxWSHeaderContextProcessor クラスをインスタンス化する必要があります。コーディネータ介入が必要な場合、代わりにcom.arjuna.mw.wst11.service.JaxWSSubordinateHeaderContextProcessorを使います。

図19.1 SOAPサーバーに登録されているコンテキストハンドラ

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat