Cosminexus SOAPアプリケーション開発ガイド
WSDL2Javaコマンドによって,WSDL Faultに対応するソースコードを生成できます。WSDLとJava例外のマッピングを次の図に示します。
図3-29 WSDLとJava例外のマッピング(WSDL2Javaコマンド実行時)
WSDL Fault(wsdl:fault要素)とユーザ定義例外のマッピングは可逆ではありません。
WSDLのwsdl:fault要素から参照されているwsdl:message要素は,wsdl:part要素を一つ持ちます。wsdl:part要素が複数存在する場合,WSDL2JavaコマンドによってKDCCC0239-Eのメッセージが出力されます。Javaソースコードは生成されません。
wsdl:part要素のelement属性が参照できる要素の型,およびtype属性が参照できる型は複合型です。単純型および配列は直接参照できません。単純型または配列を利用する場合は,複合型の子要素として定義してください。
単純型または配列を直接参照するように定義した場合は,WSDL2Javaコマンドによって,KDCCC0238-Eのメッセージが出力されます。Javaソースコードは生成されません。
WSDL2Javaコマンド実行時に,WSDL Faultからマッピングされるユーザ定義例外の宣言を示します。
表3-17 WSDL Faultからマッピングされるユーザ定義例外の宣言
Java文法 | ユーザ定義例外の宣言 |
---|---|
パッケージ名※1 | xsd:schema要素のtargetNamespace属性値※2 |
クラス修飾子 | "public" |
例外名 | xsd:complexType要素のname属性値 |
スーパークラス | java.lang.Exception ただし,xsd:extension要素を利用して派生している場合は,派生元のxsd:complexType要素に対応する例外 |
リモートインタフェースのメソッドのthrows節に,必須のjava.rmi.RemoteExceptionに加えて,ユーザ定義例外を定義します。
xsd:complexType要素の子要素から,ユーザ定義例外のフィールド,メソッド,コンストラクタへのマッピングは,ユーザ定義のデータ型クラスのマッピング規則に従います。
wsdl:fault要素は,soap:fault要素を一つ持ちます。wsdl:fault要素にsoap:fault要素が存在しない場合,WSDL2JavaコマンドによってKDCCC0012-Eエラーが出力されます。Javaソースコードは生成されません。wsdl:fault要素にsoap:fault要素が複数存在する場合,WSDL2JavaコマンドによってKDCCC0247-Eエラーが出力されます。Javaソースコードは生成されません。
なお,soap:fault要素のname属性は,WSDL 1.1仕様では必須ですが,Cosminexusでは必須ではありません。name属性が定義されていない場合,処理が続行されます。また,name属性が定義されている場合でも,name属性の値は利用されません。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.