Hitachi

Cosminexus V11 アプリケーションサーバ SOAPアプリケーション開発の手引


3.3.9 WSDLの生成時および定義時の注意事項

WSDLを生成および定義するときに注意が必要な内容について説明します。

〈この項の構成〉

(1) ソースコード生成時のWSDL検証機能の実行について

WSDL2Javaコマンドを実行してソースコードを生成するときは,WSDL検証機能を有効にしてください。WSDL検証機能は,コマンド実行時に-Cオプションを指定することで有効にできます。

WSDL検証機能については,「9.2 WSDL2Javaコマンド(ソースコードの生成)」を参照してください。

(2) Javaインタフェースのメソッドのパラメタ名と生成されるWSDLの対応

Java2WSDLコマンドを実行してJavaインタフェースからWSDLを生成する場合,Javaインタフェースのメソッドのパラメタ名は,WSDLに「inXX」(XXは整数)の名称でマッピングされます。

Javaインタフェースおよび生成されるWSDLの例を示します。

(3) WSDLファイル名に使用できない文字

次に示す文字は,WSDLのファイル名に使用できません。

? : * # % | < > "

(4) WSDLを手動で定義する場合の注意

WSDLを手動で定義する場合は,Application ServerでサポートしているWSDL 1.1仕様の範囲で記述してください。Application ServerでサポートしているWSDL 1.1仕様の範囲については「12.2 WSDL 1.1との対応」を参照してください。

(5) extension要素を使用した場合のメッセージ形式について

次に示す例のように,多段的にextension baseを使用した場合,多段的なcomplexType要素の一部が上位要素の属性と見なしたSOAPメッセージが送信されます。

(6) 他社クライアントおよび他社サービスと通信する場合のデータ型に関する注意

他社クライアントまたは他社サービスと通信するためのWSDL定義を作成する場合,双方で扱えるデータ型をWSDL定義に記述してください。

SOAP通信基盤で扱えるデータ型については,「12.2.3 XML Schemaのデータ型のサポート範囲」を参照してください。他社クライアントまたは他社サービスで扱えるデータ型については,各製品のマニュアルを参照してください。

(7) 派生データ型の定義に関する注意

データ型を派生させるために使用する,制限(restriction),ユニオン(union),およびリスト(list)の中で,SOAP通信基盤で有効になるのは制限(restriction)の列挙(enumeration)だけです。WSDL定義に派生データ型を定義する場合,またはWSDL定義からソースを生成する場合に,列挙(enumeration)以外は使用しないでください。列挙(enumeration)以外を使用した場合,指定値が有効にならなかったり,生成されたソースがコンパイルできなかったりする場合があります。

(8) nillable属性に"false"を指定した場合の動作について

WSDL定義でnillable属性に"false"を指定した変数(データ型)にnullを設定しても,SOAPメッセージの送受信時エラーにはなりません。その場合,他社製品と通信できない場合があります。nullを指定した場合のSOAPメッセージの例を次に示します。

<変数名 xsi:nil="true"/>

(9) WSDL2Javaコマンド実行時のKDCCC0289-Wメッセージについて

Java2WSDLコマンドを実行して生成されたWSDLファイル定義では,名前空間URI「http://schemas.xmlsoap.org/soap/encoding/」に属する型を参照していても,その名前空間URI「http://schemas.xmlsoap.org/soap/encoding/」のインポート文が記述されません。そのため,WSDL2Javaコマンド実行時に,Java2WSDLコマンドを使用して生成されたWSDLファイルを指定すると,KDCCC0289-Wメッセージが出力されます。

WSDL2Javaコマンドを実行したときにKDCCC0289-Wメッセージが出力されても,名前空間URI「http://schemas.xmlsoap.org/soap/encoding/」のインポート文が記述されている場合と同様に,正常に処理されます。

KDCCC0289-Wメッセージは,次のすべての条件が重なる場合に出力されます。

KDCCC0289-Wメッセージを出力させないためには,WSDLファイルを手動で編集し,名前空間URI「http://schemas.xmlsoap.org/soap/encoding/」のインポート文を追加してください。WSDL2Javaコマンドを実行するときには,編集したWSDLファイルを指定してください。

(10) WSDLとSOAPサービスの対応

一つのWSDLに複数のSOAPサービスを対応させることはできません。