Hitachi

Cosminexus V11 アプリケーションサーバ Webサービス開発ガイド


15.2.1 埋め込みによるバインディング宣言でのカスタマイズ

埋め込みによるバインディング宣言でのカスタマイズは,jaxws:bindings要素を使用して,直接バインディング宣言をWSDL文書に記述し,カスタマイズします。

埋め込みによるバインディング宣言を使用して,パッケージ名をカスタマイズする例を次の図に示します。

図15‒17 パッケージ名のカスタマイズ例(埋め込みによるバインディング宣言)

[図データ]

埋め込みによるバインディング宣言でカスタマイズする場合の留意点について説明します。

〈この項の構成〉

(1) jaxws:bindings要素の指定

jaxws:bindings要素は,埋め込みによるバインディング宣言のコンテナとして使用します。

ただし,jaxws:bindings要素はjaxws:bindings要素の子要素に記述できません。jaxws:bindings要素の子要素に記述した場合,標準エラー出力とログにエラーメッセージが出力され,処理が終了されます(KDJW51034-E)。

jaxws:bindings要素の属性と,属性の指定有無による動作を次の表に示します。

表15‒20 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仕様を参照してください。

表15‒21 使用できるバインディング宣言(埋め込みによるバインディング宣言)

要素名

属性名

説明

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の次の個所に記述できます。複数の個所に同時に記述した場合の優先順位を示します。

  1. wsdl:portType/wsdl:operation/jaxws:bindings/jaxws:enableWrapperStyle

  2. wsdl:portType/jaxws:bindings/jaxws:enableWrapperStyle

  3. wsdl:definitions/jaxws:bindings/jaxws:enableWrapperStyle

番号は優先順位を表します。項番1がいちばん高く,優先順位の高い要素値が有効になります。