WebSphere Application Server Version 6.1 Feature Pack for Web Services   
             オペレーティング・システム: AIX , HP-UX, i5/OS, Linux, Solaris, Windows, Windows Vista, z/OS

             目次と検索結果のパーソナライズ化

Web Services Addressing SPI を使用するメッセージ・アドレッシング・プロパティーの指定および獲得

Web Services Addressing (WS-Addressing) システム・プログラミング・インターフェース (SPI) によって、 JAX-WS BindingProvider 要求コンテキスト上のプロパティー、あるいは JAX-RPC Stub または Call オブジェクトを介して、 アウトバウンド・メッセージの SOAP ヘッダーに WS-Addressing メッセージ・アドレッシング・プロパティー (MAP) を追加することが可能になります。 ターゲット・エンドポイントがメッセージを受信したとき、SPI によって、エンドポイントがメッセージ・コンテキスト上のプロパティーを介して MAP を獲得することが可能になります。

このタスクについて

WS-Addressing サポートを使用している Web サービス開発者、または Web サービス・メッセージ上で、フォールトまたは応答エンドポイント参照などのメッセージ・アドレッシング・プロパティーを指定するために WS-Addressing SPI を使用しているシステム・プログラマーの場合は、このタスクを実行してください。

設定または取得できるプロパティーについては、Web Services Addressing SPI で、プロパティー・インスタンスの Java タイプとともに詳述されています。ほとんどのプロパティー、例えば宛先、応答、フォールト・エンドポイント参照などは、com.ibm.websphere.wsaddressing.EndpointReference 型です。 リレーションシップ・プロパティーは、com.ibm.wsspi.wsaddressing.Relationship クラスのインスタンスを含む java.util.Set オブジェクトです。 メッセージ間の関連を指定したいとき、例えば、応答メッセージ内で応答するメッセージの ID を指定するとき、リレーションシップを使用します。 アクション・プロパティーは、ターゲット・エンドポイント内で特定のメソッドまたは操作を識別する AttributedURI オブジェクトです。
重要: 宛先エンドポイント参照とアクション・プロパティーは、メッセージが WS-Addressing 準拠であるために必要です。

プロシージャー

  1. Web サービス・アドレッシング・エンドポイント参照を介して参照される Web サービス・アプリケーションの作成 で説明されているように、 クライアントで、サービスからエンドポイント参照を入手し、 それをご使用の BindingProvider オブジェクトの要求コンテキスト、あるいは Stub または Call オブジェクトと関連付けます。
  2. 必要なプロパティーのインスタンスを作成します。 例えば、ターゲット・サービスが応答を送信するためのエンドポ イント参照を指定したい場合は、com.ibm.websphere.wsaddressing.EndpointReference クラスのインスタンス を作成し、WSADDRESSING_REPLYTO_EPR プロパティーとして使用します。
  3. BindingProvider オブジェクトの要求コンテキスト、 あるいは Stub または Call オブジェクトと関連付けることによって、必要なプロパティーを設定します。 Stub または Call オブジェクトを使用する場合は、 setProperty(String property_name, Object value) メソッドを使用します。 最初のステップで必要になったエンドポイント参照とは異なり、 これらのエンドポイント参照は SOAP メッセージの本文ではなくヘッダーに渡されるため、 別のタイプに変換する必要はありません。 以下の例では、 BindingProvider オブジェクトの要求コンテキストでの宛先エンドポイント参照と応答エンドポイント参照を設定しています。
    import javax.xml.ws.BindingProvider;
    ...
     // Associate the endpoint reference for the Web service. This property is required for the message
     // to be WS-Addressing compliant.
     Map myMap = myBindingProvider.getRequestContext();
     myMap.put(WSADDRESSING_DESTINATION_EPR, destinationEpr);
    
     // Associate the endpoint reference that represents the reply to the request context
     myMap.put(WSADDRESSING_REPLYTO_EPR, replyToEpr);
    
    BindingProvider、Stub または Call オブジェクトで呼び出しが発生したときに、 WebSphere Application Server はメッセージ・ヘッダーに適切な MAP を追加します。
  4. サーバー上で、 現在スレッド上にある javax.xml.ws.WebServiceContext または javax.xml.rpc.handler.MessageContext オブジェクトを介して、 インバウンド・メッセージから MAP を取得します。 WebSphere Application Server はメッセージを受信したとき、スレッド上のメッセージ・コンテキスト内に MAP 情報を書き込み、それをサービスに対して使用可能にします。 メッセージ・コンテキストは、例えば、エンドポイント・エンタープライズ Bean のセッション・コンテキストを使用して、取得することができます。 メッセージ・コンテキストについて詳しくは、JSR-109 標準を参照してください。 以下の例では、 Web サービス・コンテキストを使用して応答エンドポイント参照を取得します。
    import javax.xml.ws.handler.MessageContext;
    import javax.xml.ws.WebServiceContext; 
    ...
    
      // Obtain the message context from the WebService context 
      private WebServiceContext wsContext;
      MessageContext context = wsContext.getMessageContext();
    
      // Retrieve the reply endpoint reference
      replyToEpr = context.getProperty(WSADDRESSING_INBOUND_REPLYTO_EPR);
    



関連タスク
WS-Addressing SPI の使用: 拡張 Web サービス・アドレッシング・タスクの実行
関連資料
Web Services Addressing SPI
タスク・トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 4:10:06 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.wsfep.multiplatform.doc/info/ae/ae/twbs_wsa_maps.html