Cosminexus アプリケーションサーバ V8 Webサービス開発の手引

[目次][用語][索引][前へ][次へ]

15.5.2 メッセージコンテキスト使用時の注意事項

メッセージコンテキスト使用時の注意事項について説明します。

<この項の構成>
(1) Webサービスクライアント側のハンドラで操作しても意味のないメッセージコンテキストプロパティ
(2) パス情報
(3) HTTP応答ヘッダ
(4) HTTPステータスコード
(5) WebサービスクライアントでのHANDLERスコープのメッセージコンテキストプロパティ
(6) SOAPActionヘッダに関連するメッセージコンテキストプロパティ
(7) サービスエンドポイントのアドレスに指定するメッセージコンテキストのプロパティ
(8) WSDLに関連するメッセージコンテキストプロパティ
(9) WSDLオペレーションの名前に関連するメッセージコンテキストプロパティ

(1) Webサービスクライアント側のハンドラで操作しても意味のないメッセージコンテキストプロパティ

要求メッセージのHTTPメソッドのマップを保持するプロパティ(javax.xml.ws.http.request.methodプロパティなど)は,Webサービス側のハンドラで取得して意味のあるプロパティです。したがって,Webサービスクライアント側のハンドラでこのプロパティを参照した場合は常にnullが返されます。

(2) パス情報

javax.xml.ws.http.request.pathinfoプロパティは常にnullが保持されます。

(3) HTTP応答ヘッダ

応答メッセージのHTTPヘッダのマップを保持するjavax.xml.ws.http.response.headersプロパティは,インバウンド時にWebサービスクライアント側のハンドラで取得して意味のあるプロパティです。したがって,Webサービス側のハンドラ,またはWebサービスクライアント側のアウトバウンド処理のハンドラで参照した場合は,常にnullが返されます。

(4) HTTPステータスコード

Webサービスクライアント側のアウトバウンドのハンドラは,HTTP通信が行われる前に処理されます。したがって,ハンドラからHTTPステータスコードを保持するjavax.xml.ws.http.response.codeプロパティを参照した場合は,常にnullが返されます。

(5) WebサービスクライアントでのHANDLERスコープのメッセージコンテキストプロパティ

標準のメッセージコンテキストプロパティとしてAPPLICATIONスコープおよびHANDLERスコープがありますが,Webサービスクライアントからは,APPLICATIONスコープのメッセージコンテキストプロパティだけ参照できます。したがって,CosminexusのJAX-WS機能では,「15.5.1 メッセージコンテキストのプロパティのサポート範囲」の表で注※9が付けられたプロパティは,Webサービスクライアントでは使用できません。これらのプロパティを参照した場合の動作は保証されません。

(6) SOAPActionヘッダに関連するメッセージコンテキストプロパティ

CosminexusのJAX-WS機能ではSOAPActionヘッダをサポートしていないため,javax.xml.ws.soap.http.soapaction.useプロパティとjavax.xml.ws.soap.http.soapaction.uriプロパティは使用できません。これらのプロパティを参照した場合の動作は保証されません。

(7) サービスエンドポイントのアドレスに指定するメッセージコンテキストのプロパティ

サービスエンドポイントのアドレスを指定するjavax.xml.ws.service.endpoint.addressプロパティには,空白および空文字は設定できません。空白または空文字を設定した場合の動作は保証されません。javax.xml.ws.service.endpoint.addressプロパティのその他の指定値については,「14.2(3) soap:address要素またはsoap12:address要素のlocation属性に指定できる値」を参照してください。

(8) WSDLに関連するメッセージコンテキストプロパティ

ディスパッチベースのWebサービスクライアントおよびプロバイダベースのWebサービスではWSDLファイルがないので,WSDLに関連するメッセージコンテキストプロパティを参照した場合は常にnullが返ります。

(9) WSDLオペレーションの名前に関連するメッセージコンテキストプロパティ

スタブベースのWebサービスクライアントでのjavax.xml.ws.wsdl.operationプロパティの参照は,javax.xml.ws.BindingProvider#getResponseContextで取得できる要求コンテキストだけでできます。javax.xml.ws.BindingProvider#getRequestContextで取得できる要求コンテキストで参照した場合は常にnullが返ります。また,javax.xml.ws.wsdl.operationプロパティに値を設定しても,送信するSOAPメッセージには影響を与えません。