Web Services Addressing メッセージ交換パターン
World Wide Web Consortium (W3C) Web Services Addressing (WS-Addressing) 仕様は、WSDL 1.0 で定義されているメッセージ交換パターンに対して WS-Addressing コア・プロパティーを明示的に定義しています。 このトピックではこれらの MEP が要約されており、各パターンに対する必須 WS-Addressing プロパティーを説明しています。
片方向 MEP
<operation name="myOperation">
<input message="tns:myInputMessage"/>
</operation>
W3C XML の表記規則を使用した、WS-Addressing MAP の抽象名 | 片方向の入力メッセージの記述。 |
---|---|
[action] | 使用されている WS-Addressing 仕様のバージョンに従って生成された WS-Addressing アクション。 |
[reply endpoint] | この入力メッセージに対して無応答が予想されることを示す、WS-Addressing 応答エンドポイント。 この MAP の値は、使用している WS-Addressing 仕様のバージョンにより異なります。 |
[message id] | 一意的に生成されたメッセージ ID。これは仕様で指定された必須項目ではありませんが、WebSphere® Application Server ランタイムはこの値を自動的に設定します。 |
このメッセージ交換に対する WSDL 操作は応答を指定するものではありませんが、関連メッセージを他のメッセージ交換の一部として送信することができます。 特に、アプリケーションでは WS-Addressing の応答エンドポイントまたはフォールト・エンドポイント MAP を使用して、関連メッセージの送信先を片方向メッセージのターゲットに示すことができます。 応答エンドポイントまたはフォールト・エンドポイントを伝搬するには、IBM 専有の Web Services Addressing SPI を使用したメッセージ・アドレッシング・プロパティーの指定と獲得の説明にあるように、該当するプロパティーを JAX-WS BindingProvider オブジェクトの要求コンテキスト、あるいは JAX-RPC スタブまたは呼び出しオブジェクトに関連付けて、デフォルトをオーバーライドします。
双方向要求/応答
<operation name="myOperation">
<input message="tns:myInputMessage"/>
<output message="tns:myOutputMessage"/>
<fault="tns:myFaultMessage"/>
</operation>
<operation name="myOperation">
<input message="tns:myInputMessage"/>
<output message="tns:myOutputMessage"/>
</operation>
<operation name="myOperation">
<input message="tns:myInputMessage"/>
<fault="tns:myFaultMessage"/>
</operation>
W3C XML の表記規則を使用した、WS-Addressing MAP の抽象名 | 要求/応答操作の入力メッセージの記述。 |
---|---|
[action] | 使用されている WS-Addressing 仕様のバージョンに従って生成された WS-Addressing アクション。 |
[message id] | 一意的に生成されたメッセージ ID。 |
W3C XML の表記規則を使用した、WS-Addressing MAP の抽象名 | 要求/応答操作の入力メッセージの記述。 |
---|---|
[action] | 使用されている WS-Addressing 仕様のバージョンに従って生成された WS-Addressing アクション。 |
[relationship] | 要求メッセージで渡されるメッセージ ID への応答関係を含む、関係セット。 |
[message id] | 一意的に生成されたメッセージ ID。これは仕様で指定された必須項目ではありませんが、アプリケーション・サーバーのランタイムによってこのプロパティーが自動的に設定されます。 |
同期要求/応答

JAX-WS 同期呼び出しの場合、応答エンドポイントまたはフォールト・エンドポイントを設定すると、設定するエンドポイント参照に匿名 URI を使用する必要があります。 エンドポイント参照が匿名 URI を使用しない場合は、javax.xml.ws.WebServiceException 例外がスローされます。 エンドポイント参照が匿名 URI を使用した場合でも、エンドポイント参照内の参照パラメーターを使用して [reply endpoint] または [fault endpoint] をターゲットにすることができます。
- WS-Security を有効にしないで、またはアセンブリー・ツールを使用しないで、SOAP メッセージの ReplyTo エレメントと FaultTo エレメントに署名するよう指定します。 この状態では、JAX-WS エンドポイントを使用してメッセージをサード・パーティーに送信することが可能であるため、サービス妨害攻撃の一因となる可能性があります。 この攻撃を防ぐには、同期メッセージ交換パターンを指定し、WS-Policy を有効にして、クライアントがこの要件を認識するようにします。
- JAX-WS クライアントが NAT デバイスを介して通信を行っています。SOAP メッセージの ReplyTo エレメントまたは FaultTo エレメント内の URI を、そのようなデバイスを介して経路指定することはできません。 この状態では、クライアントは WS-Addressing 仕様で定義された匿名 URI、および同期メッセージ交換パターンを使用する必要があります。 サーバーが WS-Policy を使用して ReplyTo エレメントの非匿名 URI を要求しても、クライアントがこれらの要件に準拠するようにするには、クライアントに同期メッセージ交換パターンを指定します。
非同期要求/応答
JAX-RPC 1.0 プログラミング・モデルでは、双方向要求/応答操作について非同期応答または障害を許可していません。

![[Windows]](../images/windows.gif)
- WS-Addressing ポリシー・セットを適用および構成する方法。 WS-Addressing ポリシーの構成のトピックを参照してください。
- クライアント要求コンテキストで com.ibm.websphere.webservices.use.async.mep プロパティーを設定する方法。 JAX-WS Web サービスの非同期呼び出しのトピックを参照してください。
- デプロイメント記述子エレメント、@Addressing アノテーション、アドレッシング・フィーチャーを使用する方法、または WS-Policy アサーションを WSDL 文書へ追加する方法。 トピック『JAX-WS アプリケーションに対する Web サービス・アドレッシング・サポートの使用可能化』およびその子トピックを参照してください。
- WS-Policy 共有が使用可能になっている。
- WS-Policy 共有が無効だが、以下の条件に該当する。
- パッケージされた WSDL (HTTP GET 要求で取得) に、関連するポリシー情報が含まれている。
- または、コード内に @Addressing アノテーションが使用されている。 この場合、サーバー・ランタイムが WS-Policy 関連付けを含んだ WSDL 文書を生成します。