WSDLのフォルト(wsdl:fault要素から参照されるwsdl:message要素のname属性)から例外クラスへのマッピングについて説明します。
cjwsimportコマンドを実行すると,WSDLのフォルトは,JAX-WS 2.2仕様に従ってJava型にマッピングされます。マッピング例を次の図に示します。
図15-9 フォルトと例外クラスのマッピング例
フォルト名には,次の表に示すすべての条件を満たす文字列を記述できます。ただし,バインディング宣言でカスタマイズする場合は,XML Schema仕様のxsd:NCName型として使用できる文字列を記述できます。
表15-13 フォルト名に記述できる文字列の条件
項番 | 条件 | 不正な文字列の例 | 不正な文字列を指定した場合の動作 |
---|---|---|---|
1 | 半角英数字(0~9,A~Z,a~z),およびアンダースコア(_)だけを使用した文字列 | 鈴木_fault | 動作は保証されません(エラーメッセージは出力されません)。 |
2 | 先頭が数字以外の文字列 | 1User_fault | 標準エラー出力とログにエラーメッセージが出力され,処理が終了されます(KDJW51029-E)。 |
フォルトは,パートが1個だけ記述されているメッセージを参照できます。フォルトから参照されるメッセージのパートの個数と動作を次の表に示します。
表15-14 フォルトから参照されるメッセージのパートの個数と動作
項番 | 記述数 | 動作 |
---|---|---|
1 | 0個 | 標準エラー出力とログにエラーメッセージが出力され,処理が終了されます(KDJW51025-E)。 |
2 | 1個 | 正常終了します。 |
3 | 2個以上 | 標準エラー出力とログにエラーメッセージが出力され,処理が続行されます(KDJW51025-E)。 |
異なる複数のオペレーションのフォルトから同じメッセージを参照している場合,すべて同じフォルトとして扱われます。したがって,Javaへマッピングするときに,共通のラッパ例外クラスとしてマッピングされます。その例を次の図に示します。
図15-10 同じオペレーションのフォルトから同じメッセージを参照している場合のマッピング例
フォルトを記述しているオペレーションと,フォルトから参照されるメッセージの関係を次の表に示します。
表15-15 フォルトを記述しているオペレーションと参照先のメッセージの関係
項番 | フォルトを記述しているオペレーション | フォルトから参照されるメッセージ | フォルトの扱い |
---|---|---|---|
1 | 異なる | 同じ | 同じフォルトとして扱われます。 |
2 | 異なる | 別のフォルトとして扱われます。 | |
3 | 同じ | 同じ | 標準エラー出力とログにエラーメッセージが出力され,処理が終了されます(KDJW51026-E)。 |
4 | 異なる | 別のフォルトとして扱われます。 |