IBM 専有 Web Services Addressing SPI

IBM 所有の Web Services Addressing (WS-Addressing) システム・プログラミング・インターフェース (SPI) は、IBM 所有の WS-Addressing アプリケーション・プログラミング・インターフェース (API) を拡張して、エンドポイント参照および他の WS-Addressing 成果物の内容の作成とそれに関する判断、 および Web サービス・メッセージ上での WS-Addressing メッセージ・アドレッシング・プロパティー (MAP) の設定と、 Web サービス・メッセージからの同プロパティーの取得を可能にします。

この IBM 所有 SPI で標準 JAX-WS API クラスを使用することはできません。しかし、標準 JAX-WS API クラスを使用して作成したエンドポイント参照を、クラス com.ibm.websphere.wsaddressing.jaxws21.EndpointReferenceConverter を使用して IBM 所有のクラス com.ibm.websphere.wsaddressing.EndpointReference のにインスタンスに変換できます。このようにした後、専有 SPI でこの変換されたエンドポイント参照を使用することができます。

このトピックで取り上げるプログラミング・インターフェースについては、IBM WS-Addressing SPI の資料により詳しい説明があります。

エンドポイント参照の内容の作成と詳細化、 およびそれに関する判断

エンドポイント参照の内容の作成、詳細化、および判断を行う専有 SPI は、com.ibm.wsspi.wsaddressing パッケージに含まれており、以下の図のように要約されます (最初の 2 つのインターフェースは、SPI によって拡張される専有 API インターフェースです)。
提供されるクラスおよびインターフェースの詳細については、SPI の資料を参照してください。

SPI は専有 WS-Addressing の com.ibm.websphere.wsaddressing.EndpointReference API を拡張して、com.ibm.wsspi.wsaddressing.EndpointReference インターフェースを介してさまざまな追加メソッドを提供します。 この追加機能を利用するためには、com.ibm.websphere.wsaddressing.EndpointReference の インスタンスを com.ibm.wsspi.wsaddressing.EndpointReference にキャストします。

同様に、SPI com.ibm.wsspi.wsaddressing.EndpointReferenceManager は、com.ibm.websphere.wsaddressing.EndpointReferenceManager API の 一連の機能を拡張します。

EndpointReference SPI および EndpointReferenceManager SPI によって用意された追加メソッドを使用すると、以下のアクションを実行できます。
エンドポイント参照の作成
EndpointReference オブジェクトを作成するには、その EndpointReference オブジェクトが表す エンドポイントの URI を、createEndpointReference(URI) オペレーション または EndpointReferenceManager.createEndpointReference(AttributedURI) オペレーションを使用して指定します。 これらのメソッドは、API レベルで提供される createEndpointReference メソッドとは、 EndpointReference インスタンスの URI を自動生成しないという点で異なります。 これらのメソッドは、エンドポイントの URI が安定している場合、 例えばデプロイメントを制限しなくてよいテスト環境などで使用してください。
エンドポイント参照の XML 表記と Java™ 表記の間のマッピング
EndpointReference.getSOAPElement オペレーションを使用すると、 EndpointReference インターフェースのインスタンスをそれに対応する SOAP エレメント・インスタンスにシリアライズできます。 逆に、EndpointReference.createEndpointReference(SOAPElement) オペレーションによって、 タイプ EndpointReferenceType の SOAP エレメントをそれに対応する EndpointReference Java 表記に デシリアライズすることもできます。これらのシリアライゼーションおよびデシリアライゼーションのインターフェースは、 EndpointReference インスタンスが含まれるタイプのカスタム・バインダーを作成する場合に役に立ちます。
より複雑な参照パラメーター・タイプの使用
API レベルで提供される専有のインターフェースは、より単純なプログラミング・モデルを可能にするために、 タイプ xsd:string の参照パラメーターに制限されています。 SPI はこのサポートを拡張して、 タイプ <xsd:any> の参照パラメーターを使用できるようにします。 EndpointReference インターフェースで、 参照パラメーターを SOAP エレメントとして取得および設定することができます。 さらに EndpointReferenceManager クラスによって、 getSOAPElementReferenceParameterFromMessageContext オペレーションが提供され、 受信側のエンドポイントが、着信メッセージから String 以外のタイプの参照パラメーターを獲得できるようになります。
注: 参照パラメーターが含まれる EndpointReference オブジェクトでサービスを呼び出す際は、 存在するすべてのパーツ (名前空間、localpart、および接頭部) で、完全な QName オブジェクトを使用して参照パラメーターを作成する必要があります。 QName オブジェクトが完全でない場合、サービスの呼び出しは失敗します。
エンドポイント参照の内容の設定とそれに関する判断
EndpointReference インターフェースは、EndpointReference インスタンスの内容 (WS-Addressing の address や metadata プロパティーなど) を設定し、判断するためのオペレーションを提供します。 エンドポイント参照 (Metadata、AttributedURI、 および ServiceName) を構成する成果物を表すために、追加のインターフェースが用意されています。 これらのインターフェースのインスタンスは、 所有の WSAddressingFactory クラスのオペレーションで作成してください。
サポートされる名前空間の獲得と変更
この製品の WS-Addressing への対応として、複数の名前空間をサポートします。 専有 EndpointReference インターフェース上で提供される setNamespace オペレーション および getNamespace オペレーションで、特定の EndpointReference オブジェクトに関連付けられている名前空間の 変更と獲得が可能になります。 SOAP エレメントへのシリアライゼーションは、 EndpointReference オブジェクトの名前空間に対応しています。 デフォルトでは、宛先エンドポイント参照 (JAX-WS BindingProvider オブジェクトの要求コンテキストまたは JAX-RPC Stub または Call オブジェクト上の com.ibm.websphere.wsaddressing.WSAConstants.WSADDRESSING_DESTINATION_EPR プロパティーとして設定されるエンドポイント参照) の名前空間はメッセージの メッセージ・アドレッシング・プロパティーの名前空間を定義します。

WS-Addressing メッセージ・アドレッシング・プロパティーの設定と取得

IBM 専有 WS-Addressing SPI には、アウトバウンド・メッセージで WS-Addressing MAP の設定に使用できる JAX-WS または JAX-RPC プロパティーと、インバウンド・メッセージで MAP の取得に使用できるメッセージ・コンテキスト・プロパティーを識別する、さまざまな定数が用意されています。これらの定数は、com.wsspi.wsaddresssing.WSAConstants クラスの 以下の図に示されています。この図には、 該当するプロパティー値のタイプ AttributedURI および Relationship のインスタンス生成に 必要なインターフェースも示されています。 最初の WSAConstants インターフェースは、専有 API インターフェースです。
提供されるクラス、インターフェース、および定数の詳細については、SPI の資料を参照してください。

アウトバウンド・メッセージでの WS-Addressing メッセージ・アドレッシング・プロパティーの設定:

WS-Addressing メッセージ情報ヘッダーを出力メッセージに追加するには、JAX-WS BindingProvider オブジェクトの要求コンテキスト、または JAX-RPC の Stub オブジェクトまたは Call オブジェクトで適切なプロパティーを設定してから、BindingProvider、Stub、Call のいずれかのオブジェクトでメッセージを呼び出します。次の表は、関連するプロパティーとそのタイプをまとめたものです。
表 1. BindingProvider オブジェクトの要求コンテキスト (あるいは Stub または Call オブジェクト) 上で設定できるアウトバウンド・プロパティー. この表では、各種のプロパティー名、その Java タイプ、WS-Addressing MAP の抽象名、およびデフォルト値を示します。
(ストリング・タイプの) プロパティー名 プロパティー値の Java タイプ W3C XML 情報セットの表記規則を使用した WS-Addressing MAP の抽象名 デフォルト値
WSADDRESSING_DESTINATION_EPR com.ibm.websphere.wsaddressing.EndpointReference

[destination] URI
[reference parameters]* (any)

設定なし

このプロパティーは API のものであることに注意してください。

WSADDRESSING_FROM_EPR com.ibm.websphere.wsaddressing.EndpointReference [source endpoint] 設定なし
WSADDRESSING_REPLYTO_EPR com.ibm.websphere.wsaddressing.EndpointReference [reply endpoint] 'none' (メッセージが、無応答の片方向メッセージである場合) または設定なし。JAX-WS アプリケーションの両方向の非同期メッセージでは、このプロパティーは自動的に生成されます。 この状態で、このプロパティーの設定を試みた場合、javax.xml.ws.WebServiceException 例外がスローされます。 両方向の同期メッセージでは、エンドポイントの参照アドレスが匿名 URI である場合のみ、このプロパティーを設定できます。 アドレスが匿名 URI でない場合、javax.xml.ws.WebServiceException 例外がスローされます。
WSADDRESSING_FAULTTO_EPR com.ibm.websphere.wsaddressing.EndpointReference [fault endpoint] 設定なし

このプロパティーを JAX-WS アプリケーションの 両方向の非同期メッセージへ設定しようとすると、javax.xml.ws.WebServiceException 例外が スローされます。両方向の同期メッセージでは、エンドポイントの参照アドレスが匿名 URI である場合のみ、このプロパティーを設定できます。 アドレスが匿名 URI でない場合、javax.xml.ws.WebServiceException 例外がスローされます。

WSADDRESSING_RELATIONSHIP_SET java.util.Set containing instances of com.ibm.wsspi.wsaddressing.Relationship [relationship] 設定なし
WSADDRESSING_MESSAGE_ID com.ibm.wsspi.wsaddressing.AttributedURI [message id] 固有値に生成および設定
WSADDRESSING_ACTION com.ibm.wsspi.wsaddressing.AttributedURI [action] WS-Addressing 仕様に従って生成および設定
WSADDRESSING_OUTBOUND_NAMESPACE ストリング none 指定されている場合は WSADDRESSING_DESTINATION_EPR プロパティーの WS-Addressing 名前空間、 そうでない場合はデフォルト名前空間

インバウンド・メッセージからの WS-Addressing メッセージ・アドレッシング・プロパティーの取得:

最新のインバウンド・メッセージに 対応する WS-Addressing メッセージ情報ヘッダーは、WSAConstants クラスに定義されたインバウンド・プロパティーから入手できます。 次の表は、使用できるインバウンド・プロパティーをまとめたものです。 所有の EndpointReferenceManager.getReferenceParameter インターフェースを使用して、メッセージ・コンテキストから参照パラメーターを獲得します。
表 2. メッセージ・コンテキストから獲得できるインバウンド・プロパティー. 次の表には、各種のプロパティー名と、それぞれの Java タイプ、およびそれに相当する WS-Addressing MAP の抽象名をリストしています。
メッセージ・コンテキスト・プロパティー名 (タイプは String) プロパティー値の Java タイプ W3C XML の表記規則を使用した、WS-Addressing MAP の抽象名
WSADDRESSING_INBOUND_TO com.ibm.wsspi.wsaddressing.AttributedURI [destination]
特定のプロパティーなし。 EndpointReferenceManager.getReferenceParameter(QName name) メソッドを使用して関連のある MAP を取得。 任意のタイプ [reference parameters]*
WSADDRESSING_INBOUND_FROM_EPR com.ibm.websphere.wsaddressing.EndpointReference [source endpoint]
WSADDRESSING_INBOUND_REPLYTO_EPR com.ibm.websphere.wsaddressing.EndpointReference [reply endpoint]
WSADDRESSING_INBOUND_FAULTTO_EPR com.ibm.websphere.wsaddressing.EndpointReference [fault endpoint]
WSADDRESSING_INBOUND_RELATIONSHIP java.util.Set containing instances of com.ibm.wsspi.wsaddressing.Relationship [relationship]
WSADDRESSING_INBOUND_MESSAGE_ID com.ibm.wsspi.wsaddressing.AttributedURI [message id]
WSADDRESSING_INBOUND_ACTION com.ibm.wsspi.wsaddressing.AttributedURI [action]
WSADDRESSING_INBOUND_NAMESPACE ストリング 着信メッセージの WS-Addressing 名前空間

トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_wsa_spi
ファイル名:cwbs_wsa_spi.html