15.1.11 WSDLからJavaへのマッピングに関する注意事項
WSDLからJavaへのマッピングでの注意事項について説明します。
(1) Javaメソッドのオーバーロード
1個のポートタイプに複数のオペレーションを記述する場合,オペレーション名はすべてユニークでなければなりません。したがって,WSDLからJavaへのマッピングでは,Javaメソッドのオーバーロードはできません。オペレーション名が重複している場合はカスタマイズして,それぞれユニークな名称にしてください。
(2) 名前衝突時のマッピング
cjwsimportコマンドを実行するときに,SEI名,クラス名,メソッド名,およびパラメタ名で名前衝突が発生することがあります。ここでは,名前衝突時のマッピングについて説明します。
(a) SEI名およびクラス名の衝突時のマッピング
WSDLからJavaソースへのマッピングで,SEI名およびクラス名(非例外Javaクラス名,例外クラス名,サービスクラス名,スケルトンクラス名)で名前が衝突した場合,優先順位に従って名前衝突が解決されます。
名前衝突時の優先順位と解決方法を次の表に示します。項番は優先順位を表します(項番1がいちばん高い)。
SEI名と非例外Javaクラス名が衝突した場合の名前解決の例を示します。
名前解決によってサフィックスが付加されたクラス名と,同名のクラス名が定義されていた場合は,再度,名前衝突が発生します。この場合,定義済みのクラス名からアンダースコアを削除することで解決します。
サフィックスが付加されたあとに,名前衝突する場合の名前解決例を示します。
さらに,アンダースコアの削除によって変更されたクラス名と,同名のクラス名が定義されていた場合は,標準エラー出力とログにエラーメッセージが出力され,処理が終了されます(KDJW51030-E※)。
- 注※
-
非例外Javaクラスの場合は,異なるメッセージが出力されます。
(3) JAXBアノテーションのサポートについて
cjwsimportコマンドは,JAX-WS 2.2仕様のComformance 2.17に対応しています。cjwsimportコマンド実行時に,必要に応じて次に示すJAXBアノテーションがSEIに付与されます。
-
javax.xml.bind.annotation.XmlAttachmentRef
-
javax.xml.bind.annotation.XmlList
-
javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter
-
javax.xml.bind.annotation.XmlMimeType
なお,Application ServerのJAX-WS機能ではMIMEバインディングはサポートしていないため,javax.xml.bind.annotation.XmlMimeTypeアノテーションは付与されません。MIMEバインディングを指定した場合は,標準エラー出力とログにエラーメッセージが出力され,処理が終了されます(KDJW51188-E)。