Cosminexus アプリケーションサーバ V8 Webサービス開発の手引
![[目次]](FIGURE/CONTENT.GIF)
![[用語]](FIGURE/GLOSS.GIF)
![[索引]](FIGURE/INDEX.GIF)
![[前へ]](FIGURE/FRONT.GIF)
SEIのメソッド名とWSDLのオペレーションは,JAX-WS 2.1仕様に従ってマッピングされます。マッピング例を次の図に示します。
図13-3 SEIのメソッド名とオペレーションのマッピング例
![[図データ]](FIGURE/ZU120300.GIF)
SEIのメソッド名からオペレーションへのマッピング規則を次に示します。
- javax.jws.WebMethodアノテーションの有無に関係なく,SEIのすべてのpublicなメソッドがWSDLのオペレーションにマッピングされます。
- javax.jws.WebServiceアノテーションのendpointInterface要素を使用していない場合,Webサービス実装クラスのpublicメソッドを暗黙のSEIが持っているものと見なされ,WSDLのオペレーションにマッピングされます。暗黙のSEIにマッピングされるメソッドについては,「13.2.5 javax.jws.WebMethodアノテーション」を参照してください。
- Webサービス実装クラスが別のWebサービス実装クラスを継承している場合,次の条件に合うすべてのメソッドがWSDLのオペレーションにマッピングされます。
(条件)
Webサービス実装クラスおよび親のWebサービス実装クラスが持つjavax.jws.WebMethodアノテーションのexclude要素が,trueではないpublicなメソッド。
- SEIのpublicなメソッドだけWSDLのオペレーションへマッピングされます。それ以外のアクセス修飾子の場合は,WSDLへマッピングされません。publicメソッドが一つもない場合,標準エラー出力とログにエラーメッセージが出力され,処理が終了されます(KDJW61093-E)。
- Webサービス実装クラスが別のWebサービス実装クラスを継承し,親クラスのメソッドをオーバーライドしている場合,Webサービス実装クラスでオーバーライドしたpublicなメソッドがWSDLのオペレーションにマッピングされます。親クラスでオーバーライドされたメソッドはマッピングされません。
- SEIに定義できるメソッドおよびWebサービス実装クラスで,exclude要素がtrueであるjavax.jws.WebMethodアノテーションでアノテートされていないpublicメソッドは,255個まで定義できます。256個以上定義した場合は,標準エラー出力とログに警告メッセージが出力され,処理が続行されます(KDJW61026-W)。
- SEIのメソッド名からマッピングされるwsdl:operation要素のname属性の値は,WSDL内でユニークである必要があります。名前衝突が発生した場合,標準エラー出力とログにエラーメッセージが出力されます(KDJW61060-E)。
メソッド名には,次の表に示すすべての条件を満たす文字列を記述できます。
表13-4 メソッド名に記述できる文字列の条件
| 項番 |
条件 |
不正な文字列の例 |
不正な文字列を指定した場合の動作 |
| 1 |
半角英数字(0〜9,A〜Z,a〜z),およびアンダースコア(_)だけを使用した文字列 |
日立_sei |
動作は保証されません(エラーメッセージは表示されません)。 |
| 2 |
Java言語仕様で定められているJava識別子の命名規則に従った文字列 |
abstract |
aptコマンド実行時にコンパイルエラーとなり,終了します。詳細は,JDKのドキュメントを参照してください。 |
ただし,次に示すアノテーションをすべて使用する場合,Java言語仕様で定められているJava識別子の命名規則に従った文字列を記述できます。
- javax.jws.WebMethodアノテーションのoperationName要素
- javax.xml.ws.RequestWrapperアノテーションのlocalName要素およびclassName要素(wrapperスタイルの場合)
- javax.xml.ws.ResponseWrapperアノテーションのlocalName要素およびclassName要素(wrapperスタイルの場合)
- javax.jws.WebParamアノテーションのname要素(non-wrapperスタイルの場合)
- javax.jws.WebResultアノテーションのname要素(non-wrapperスタイルの場合)
メソッドのオーバーロードを使用している場合,デフォルトマッピングでは名前衝突が発生するため,名前がユニークになるようにアノテーションでカスタマイズする必要があります。
オーバーロードによる名前衝突が発生する個所と,参照先を次の表に示します。
表13-5 オーバーロードによる名前衝突の発生個所と参照先
- 注※
- ローカル名または名前空間のどちらかをカスタマイズすれば,名前衝突は発生しません。
All Rights Reserved. Copyright (C) 2008, 2011, Hitachi, Ltd.