JAX-WS APIのサポート範囲内で,ハンドラ,Webサービスクライアント,およびWebサービスからメッセージコンテキストにアクセスできます。詳細を次に示します。
JAX-WS APIについては,JAX-WS 2.2仕様を参照してください。また,Application ServerのJAX-WS機能でのJAX-WS APIのサポート範囲については,「19.2.1 インタフェースおよびクラスの一覧(JAX-WS)」を参照してください。Application ServerのJAX-WS機能では,JAX-WS 2.2仕様で定義された標準のプロパティ,およびベンダ固有のプロパティをサポートしています。
JAX-WS 2.2仕様の9章に記載されている標準のプロパティについては,参照だけサポートしています。変更した場合の動作はサポートしていません。
メッセージコンテキストのプロパティのサポート範囲を次の表に示します。
表19-32 メッセージコンテキストのプロパティの一覧
項番 | プロパティ名 | 記載個所※1 | 必須※2 | サポート | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Webサービスクライアント | Webサービス※5 | ハンドラ | ||||||||
Webサービスクライアント側 | Webサービス側 | |||||||||
out※3 | in※4 | out※6 | in※7 | in※8 | out※9 | |||||
javax.xml.ws.handler.message | ||||||||||
1 | .outbound※10 | 9.4.1.1 | ○ | ×※10 | ×※10 | × | △ | △ | △ | △ |
javax.xml.ws.binding.attachments | ||||||||||
2 | .inbound※10 | 9.4.1.1 | ○ | ×※10 | ×※10 | △ | △ | △ | △ | △ |
3 | .outbound※10 | 9.4.1.1 | ○ | ×※10 | ×※10 | × | △ | △ | △ | △ |
javax.xml.ws.reference | ||||||||||
4 | .parameters※10 | 9.4.1.1 | ○ | ×※10 | ×※10 | △ | △ | △ | △ | △ |
javax.xml.ws.wsdl | ||||||||||
5 | .description※10,※12 | 9.4.1.1 | - | ×※10 | ×※10 | ×※11 | ×※11 | ×※11 | ×※11 | ×※11 |
6 | .service※10,※12 | 9.4.1.1 | - | ×※10 | ×※10 | △ | △ | △ | △ | △ |
7 | .port※10,※12 | 9.4.1.1 | - | ×※10 | ×※10 | △ | △ | △ | △ | △ |
8 | .interface※10,※12 | 9.4.1.1 | - | ×※10 | ×※10 | △ | △ | △ | △ | △ |
9 | .operation※10,※12,※13 | 9.4.1.1 | - | ×※10 | △※13 | △ | △ | △ | △ | △ |
javax.xml.ws.http.request | ||||||||||
10 | .headers | 9.4.1.1 | ○ | ◎※14 | ×※10 | △ | ◎※14 | △※15 | △ | △ |
11 | .method※10,※11 | 9.4.1.1 | ○ | ×※10 | ×※10 | △ | △※15 | △※15 | △ | △ |
12 | .querystring※10,※11 | 9.4.1.1 | ○ | ×※10 | ×※10 | △ | △※15 | △※15 | △ | △ |
13 | .headers | 9.4.1.1 | ○ | ×※10 | ×※10 | △※16 | △※15 | △※15 | △※16 | △※16 |
javax.xml.ws.http.response | ||||||||||
14 | .headers※10 | 9.4.1.1 | ○ | ×※10 | ×※10 | × | △※17 | △ | △※17 | △※17 |
15 | .code※10 | 9.4.1.1 | ○ | ×※10 | ×※10 | × | △※18 | △ | △ | △ |
javax.xml.ws.servlet | ||||||||||
16 | .context※10,※11 | 9.4.1.1 | ○ | ×※10 | ×※10 | △ | △※15 | △※15 | △ | △ |
17 | .request※10 | 9.4.1.1 | ○ | ×※10 | ×※10 | △ | △※15 | △※15 | △ | △ |
18 | .response※10 | 9.4.1.1 | ○ | ×※10 | ×※10 | △ | △※15 | △※15 | △ | △ |
javax.xml.ws.service.endpoint | ||||||||||
19 | .address※19 | 4.2.1.1 | ○ | ◎ | △ | × | ◎ | △ | △ | △ |
javax.xml.ws.security.auth | ||||||||||
20 | .username | 4.2.1.1 | ○ | ◎ | △ | × | ◎ | △ | △ | △ |
21 | .password | 4.2.1.1 | ○ | ◎ | △ | × | ◎ | △ | △ | △ |
javax.xml.ws.session | ||||||||||
22 | .maintain | 4.2.1.1 | ○ | ◎ | △ | × | ◎ | △ | △ | △ |
javax.xml.ws.soap.http.soapaction | ||||||||||
23 | .use | 4.2.1.1 | - | ×※20 | ×※20 | ×※20 | ×※20 | ×※20 | ×※20 | ×※20 |
24 | .uri | 4.2.1.1 | - | ×※20 | ×※20 | ×※20 | ×※20 | ×※20 | ×※20 | ×※20 |
com.cosminexus.jaxws | ||||||||||
25 | .connect.timeout | ◎ | △ | × | ◎ | △ | △ | △ | ||
26 | .request.timeout | ◎ | △ | × | ◎ | △ | △ | △ | ||
com.cosminexus.xml.ws.client.http | ||||||||||
27 | .HostnameVerificationProperty | ◎※21 | × | × | × | × | × | × |
メッセージコンテキスト使用時の注意事項について説明します。
要求メッセージのHTTPメソッドのマップを保持するプロパティ(javax.xml.ws.http.request.methodプロパティなど)は,Webサービス側のハンドラで取得して意味のあるプロパティです。したがって,Webサービスクライアント側のハンドラでこのプロパティを参照した場合は常にnullが返されます。
javax.xml.ws.http.request.pathinfoプロパティは常にnullが保持されます。
Webサービスクライアント側のアウトバウンドのハンドラは,HTTP通信が行われる前に処理されます。したがって,ハンドラからHTTPステータスコードを保持するjavax.xml.ws.http.response.codeプロパティを参照した場合は,常にnullが返されます。
標準のメッセージコンテキストプロパティとしてAPPLICATIONスコープおよびHANDLERスコープがありますが,Webサービスクライアントからは,APPLICATIONスコープのメッセージコンテキストプロパティだけ参照できます。したがって,Application ServerのJAX-WS機能では,「19.2.5(1) メッセージコンテキストのプロパティのサポート範囲」の表で注※9が付けられたプロパティは,Webサービスクライアントでは使用できません。これらのプロパティを参照した場合の動作は保証されません。
Application ServerのJAX-WS機能ではSOAPActionヘッダをサポートしていないため,javax.xml.ws.soap.http.soapaction.useプロパティとjavax.xml.ws.soap.http.soapaction.uriプロパティは使用できません。これらのプロパティを参照した場合の動作は保証されません。
サービスエンドポイントのアドレスを指定するjavax.xml.ws.service.endpoint.addressプロパティには,空白および空文字は設定できません。空白または空文字を設定した場合の動作は保証されません。javax.xml.ws.service.endpoint.addressプロパティのその他の指定値については,「20.2(3) soap:address要素またはsoap12:address要素のlocation属性に指定できる値」を参照してください。
ディスパッチベースのWebサービスクライアントおよびプロバイダベースのWebサービスではWSDLファイルがないので,WSDLに関連するメッセージコンテキストプロパティを参照した場合は常にnullが返ります。
スタブベースのWebサービスクライアントでのjavax.xml.ws.wsdl.operationプロパティの参照は,javax.xml.ws.BindingProvider#getResponseContextで取得できる要求コンテキストだけでできます。javax.xml.ws.BindingProvider#getRequestContextで取得できる要求コンテキストで参照した場合は常にnullが返ります。また,javax.xml.ws.wsdl.operationプロパティに値を設定しても,送信するSOAPメッセージには影響を与えません。
WS-RM 1.2機能を使用するWebサービスクライアントでは,最初のWebサービスの呼び出し前にサービスエンドポイントのアドレスを指定してください。最初の通信以降にサービスエンドポイントを変更すると,WS-RMの通信に失敗します。
com.cosminexus.xml.ws.client.http.HostnameVerificationPropertyプロパティにメッセージコンテキストでtrueまたはfalseを設定する場合は,次の例のようにjava.lang.String型の文字列で設定してください。java.lang.String型の文字列以外で設定した場合の動作は保証されません。
context.put("com.cosminexus.xml.ws.client.http.HostnameVerificationProperty", "true"); |
Webサービスでのメッセージコンテキストプロパティの,参照および変更について次に説明します。