JMS プロバイダーを使用すると、WSIF サービスを
SOAP over JMS またはネイティブ JMS のいずれかを介して呼び出すことができます。サービスが、JMS プロバイダーを使用できるように、Web サービス WSDL ファイルに WSDL 拡張機能を追加します。
このタスクについて
Java Message Service (JMS) は、トランスポート・テクノロジーの API です。JMS 宛先へのマッピングは、デプロイメント時に定義され、コンテナーで保守されます。
Web サービス の JMS 宛先エンドポイントは、以下のいずれかの方法で実現できます。
- キューの場合は、Web サービス・インプリメンテーションを JMS 宛先にすることができます。
- JMS 宛先は、EJB コンテナーによってメッセージ・ドリブン Bean に関連付けることができ (ただし必須ではない)、それによって、メッセージ・ドリブン Bean を Web サービス・インプリメンテーションにすることができます。
- SOAP over JMS
の場合、JMS 宛先は JMS メッセージをアンラップし、
SOAP メッセージを、ステートレス・セッション Bean と
してインプリメントされた Web サービスにルーティングできます。
JMS 宛先エンドポイントは、クライアントが予想し、WSDL が定義する対話モデルを採用する必要があります。また、必要があれば応答を戻さなければなりません。
JMS 宛先エンドポイントが JMS 応答メッセージを作成する場合、次の規則に従っている必要があります。
- 応答メッセージは、着信要求の JMSReplyTo に送信しなければなりません。
- 応答メッセージの値 JMSCorrelationID は、要求メッセージの JMSMessageID という値に設定しなければなりません。
- 応答は、要求メッセージの値 JMSDeliveryMode と同等の値 deliveryMode で送信しなければなりません。
- 応答は、要求メッセージの値 JMSPriority と同等の値 priority で送信しなければなりません。
- 値 TimeToLive/JMSExpiration は、要求メッセージの値 JMSExpiration と同等の値に設定する必要があります。
クライアントでは、これらのヘッダーはいずれも表示されません。
コンテナーは、JMS メッセージを受信すると、(JMS を介した SOAP の場合) SOAP メッセージを除去してクライアントに送信します。
JMS 提供サービスへ WSIF サービスをリンクするには、次のトピックで提供される情報とコードの例を使用します。