15.2.1 埋め込みによるバインディング宣言でのカスタマイズ
埋め込みによるバインディング宣言でのカスタマイズは,jaxws:bindings要素を使用して,直接バインディング宣言をWSDL文書に記述し,カスタマイズします。
埋め込みによるバインディング宣言を使用して,パッケージ名をカスタマイズする例を次の図に示します。
埋め込みによるバインディング宣言でカスタマイズする場合の留意点について説明します。
- 〈この項の構成〉
(1) jaxws:bindings要素の指定
jaxws:bindings要素は,埋め込みによるバインディング宣言のコンテナとして使用します。
ただし,jaxws:bindings要素はjaxws:bindings要素の子要素に記述できません。jaxws:bindings要素の子要素に記述した場合,標準エラー出力とログにエラーメッセージが出力され,処理が終了されます(KDJW51034-E)。
jaxws:bindings要素の属性と,属性の指定有無による動作を次の表に示します。
項番 |
要素 |
属性の指定 |
動作 |
---|---|---|---|
1 |
wsdlLocation |
あり |
属性は指定できません。指定しても無視されます。 |
2 |
なし |
正常終了します。 |
|
3 |
node |
あり |
属性は指定できません。指定しても無視されます。 |
4 |
なし |
正常終了します。 |
|
5 |
version |
あり |
属性には"2.0"だけ指定できます。"2.0"以外を指定した場合は値が無視され,"2.0"が指定されていると見なされます。 |
6 |
なし |
正常終了します。 |
(2) 使用できるバインディング宣言
埋め込みによるバインディング宣言を使用する場合に,Application ServerのJAX-WS機能で使用できるバインディング宣言の一覧を次の表に示します。各バインディング宣言については,JAX-WS 2.2仕様を参照してください。
要素名 |
属性名 |
説明 |
||
---|---|---|---|---|
wsdl:definitions/jaxws:bindings要素 |
version |
version属性には,WSDLのカスタマイズのバージョンを記述します。 |
||
jaxws:bindings要素の子要素 |
− |
jaxws:bindings要素の子要素です。 |
||
┣ ┃ ┃ ┃ ┃ ┃ ┃ |
jaxws:package ┃ ┃ ┃ |
name |
name属性には,wsdl:definitions要素のtargetNamespace属性に対応するJavaパッケージ名を記述します。 |
|
┗ |
jaxws:javadoc |
− |
Javaパッケージに付加するJavadoc文字列です。 |
|
┣ ┃ ┃ |
jaxws:enableWrapperStyle |
− |
WSDLのすべてのオペレーションに対するwrapperスタイルの有効/無効を表します。 |
|
┗ |
jaxws:enableAsyncMapping |
− |
WSDLのすべてのオペレーションに対する非同期マッピングの有効/無効を表します。 |
|
wsdl:definitions/wsdl:portType /jaxws:bindings要素の子要素 |
− |
wsdl:definitions/wsdl:portType要素に含まれるjaxws:bindings要素の子要素です。 |
||
┣ ┃ ┃ ┃ ┃ ┃ |
jaxws:class ┃ ┃ |
name |
name属性には,wsdl:portType要素に対応するSEIの完全修飾名を記述します。 |
|
┗ |
jaxws:javadoc |
− |
SEIに付加するJavadoc文字列を記述します。 |
|
┣ ┃ ┃ |
jaxws:enableWrapperStyle |
− |
wsdl:portType要素に対するwrapperスタイルの有効/無効を表します。 |
|
┗ |
jaxws:enableAsyncMapping |
− |
wsdl:portType要素に対する非同期マッピングの有効/無効を表します。 |
|
wsdl:definitions/wsdl:portType/wsdl:operation /jaxws:bindings要素の子要素 |
− |
wsdl:definitions/wsdl:portType/wsdl:operation要素に含まれるjaxws:bindings要素の子要素です。 |
||
┣ ┃ ┃ ┃ ┃ ┃ |
jaxws:method ┃ ┃ |
name |
name属性には,wsdl:operation要素に対応するJavaメソッド名を記述します。 |
|
┗ |
jaxws:javadoc |
− |
メソッドに付加するJavadoc文字列です。 |
|
┣ ┃ ┃ |
jaxws:enableWrapperStyle |
− |
wsdl:operation要素に対するwrapperスタイルの有効/無効を表します。 |
|
┣ ┃ ┃ |
jaxws:enableAsyncMapping |
− |
wsdl:operation要素に対する非同期マッピングの有効/無効を表します。 |
|
┗ |
jaxws:parameter |
part |
part属性には,wsdl:message要素のwsdl:part子要素を識別するXPath表現を記述します。 |
|
childElementName |
childElementName属性には,wsdl:part要素によって参照されるグローバル型定義またはグローバル要素宣言の子要素名を記述します。 |
|||
name |
name属性には,part属性およびchildElementName属性によって識別される要素のパラメタ名を記述します。 |
|||
wsdl:definitions/wsdl:portType/wsdl:operation/wsdl:fault /jaxws:bindings要素の子要素 |
− |
wsdl:definitions/wsdl:portType/wsdl:operation/wsdl:fault要素に含まれるjaxws:bindings要素の子要素です。 |
||
┗ |
jaxws:class ┃ |
name |
name属性には,wsdl:fault要素に対応する例外クラスの完全修飾名を記述します。 |
|
┗ |
jaxws:javadoc |
− |
例外クラスに付加するJavadoc文字列です。 |
|
wsdl:definitions/wsdl:binding/wsdl:operation要素/jaxws:bindings要素の子要素 |
− |
wsdl:definitions/wsdl:binding/wsdl:operation要素に含まれるjaxws:bindings要素の子要素です。 |
||
┗ |
jaxws:parameter |
part |
part属性には,wsdl:message要素のwsdl:part子要素を識別するXPath表現を記述します。 |
|
childElementName |
childElementName属性には,wsdl:part要素によって参照されるグローバル型定義またはグローバル要素宣言の子要素名を記述します。 |
|||
name |
name属性には,part属性およびchildElementName属性によって識別される要素のパラメタ名を記述します。 |
|||
wsdl:definitions/wsdl:service /jaxws:bindings要素の子要素 |
− |
wsdl:definitions/wsdl:service/要素に含まれるjaxws:bindings要素の子要素です。 |
||
┗ |
jaxws:class ┃ ┃ |
name |
name属性には,wsdl:service要素に対応するサービスクラスの完全修飾名を記述します。 |
|
┗ |
jaxws:javadoc |
− |
サービスクラス名に付加するJavadoc文字列です。 |
|
wsdl:definitions/wsdl:service/wsdl:port /jaxws:bindings要素の子要素 |
− |
wsdl:definitions/wsdl:service/wsdl:port要素に含まれるjaxws:bindings要素の子要素です。 |
||
┗ |
jaxws:method ┃ ┃ |
name |
name属性には,wsdl:port要素に対応するgetterメソッド名を記述します。 |
|
┣ ┃ |
jaxws:javadoc |
− |
getterメソッドに付加するJavadoc文字列です。 |
|
┗ |
jaxws:provider |
− |
"true"を指定した場合,SEIは生成されません。生成されたサービスインタフェースでポートのgetterメソッドが省略されます。 jaxws:provider要素については,「15.2.7 jaxws:provider要素を記述した場合の動作」を参照してください。 |
この表に示すように,WSDLでjaxws:bindings要素およびその子要素を記述できる位置は,JAX-WS 2.2仕様で規定されています。規定されていない位置にそれらの要素を記述した場合は,標準エラー出力とログにエラーメッセージが出力され,処理が終了されます(KDJW51029-E)。
各jaxws:bindings要素の子要素として記述できない要素を記述した場合は,標準エラー出力とログにエラーメッセージが出力され,処理が終了されます(KDJW51040-E)。
また,jaxws:bindings要素の属性およびその子要素に記述できない属性を記述した場合は,標準エラー出力とログにエラーメッセージが出力され,処理が終了されます(KDJW51029-E)。
(3) 要素および属性の重複
jaxws:bindings要素およびその子要素内で属性が重複して記述されている場合,標準エラー出力とログにXML Processorのエラーメッセージが出力され,処理が終了されます。
埋め込みによるバインディング宣言を使用して,同じカスタマイズ対象へのカスタマイズを重複して指定できません。また,jaxws:bindings要素の子要素も重複して指定できません。指定した場合の動作は保証されません。
(4) jaxws:enableWrapperStyle要素の優先順位
jaxws:enableWrapperStyle要素は,WSDLの次の個所に記述できます。複数の個所に同時に記述した場合の優先順位を示します。
-
wsdl:portType/wsdl:operation/jaxws:bindings/jaxws:enableWrapperStyle
-
wsdl:portType/jaxws:bindings/jaxws:enableWrapperStyle
-
wsdl:definitions/jaxws:bindings/jaxws:enableWrapperStyle
番号は優先順位を表します。項番1がいちばん高く,優先順位の高い要素値が有効になります。