15.1.7 フォルトから例外クラスへのマッピング

WSDLのフォルト(wsdl:fault要素から参照されるwsdl:message要素のname属性)から例外クラスへのマッピングについて説明します。

<この項の構成>
(1) マッピング
(2) フォルト名の条件
(3) フォルトから参照されるメッセージのパートの個数
(4) 同じオペレーションのフォルトから同じメッセージを参照している場合の扱い

(1) マッピング

cjwsimportコマンドを実行すると,WSDLのフォルトは,JAX-WS 2.2仕様に従ってJava型にマッピングされます。マッピング例を次の図に示します。

図15-9 フォルトと例外クラスのマッピング例

[図データ]

(2) フォルト名の条件

フォルト名には,次の表に示すすべての条件を満たす文字列を記述できます。ただし,バインディング宣言でカスタマイズする場合は,XML Schema仕様のxsd:NCName型として使用できる文字列を記述できます。

表15-13 フォルト名に記述できる文字列の条件

項番条件不正な文字列の例不正な文字列を指定した場合の動作
1半角英数字(0~9,A~Z,a~z),およびアンダースコア(_)だけを使用した文字列鈴木_fault動作は保証されません(エラーメッセージは出力されません)。
2先頭が数字以外の文字列1User_fault標準エラー出力とログにエラーメッセージが出力され,処理が終了されます(KDJW51029-E)。

(3) フォルトから参照されるメッセージのパートの個数

フォルトは,パートが1個だけ記述されているメッセージを参照できます。フォルトから参照されるメッセージのパートの個数と動作を次の表に示します。

表15-14 フォルトから参照されるメッセージのパートの個数と動作

項番記述数動作
10個標準エラー出力とログにエラーメッセージが出力され,処理が終了されます(KDJW51025-E)。
21個正常終了します。
32個以上標準エラー出力とログにエラーメッセージが出力され,処理が続行されます(KDJW51025-E)。

(4) 同じオペレーションのフォルトから同じメッセージを参照している場合の扱い

異なる複数のオペレーションのフォルトから同じメッセージを参照している場合,すべて同じフォルトとして扱われます。したがって,Javaへマッピングするときに,共通のラッパ例外クラスとしてマッピングされます。その例を次の図に示します。

図15-10 同じオペレーションのフォルトから同じメッセージを参照している場合のマッピング例

[図データ]

フォルトを記述しているオペレーションと,フォルトから参照されるメッセージの関係を次の表に示します。

表15-15 フォルトを記述しているオペレーションと参照先のメッセージの関係

項番フォルトを記述しているオペレーションフォルトから参照されるメッセージフォルトの扱い
1異なる同じ同じフォルトとして扱われます。
2異なる別のフォルトとして扱われます。
3同じ同じ標準エラー出力とログにエラーメッセージが出力され,処理が終了されます(KDJW51026-E)。
4異なる別のフォルトとして扱われます。