Cosminexus アプリケーションサーバ V8 Webサービス開発の手引
![[目次]](FIGURE/CONTENT.GIF)
![[用語]](FIGURE/GLOSS.GIF)
![[索引]](FIGURE/INDEX.GIF)
![[前へ]](FIGURE/FRONT.GIF)
WSDLのサービスおよびポートと,サービスクラスは,JAX-WS 2.1仕様に従ってマッピングされます。マッピング例を次の図に示します。
図12-10 サービスおよびポートとサービスクラスのマッピング例
![[図データ]](FIGURE/ZU111000.GIF)
また,WSDLのサービスおよびポートは,スケルトンクラスにもマッピングされます。マッピング例を次の図に示します。
図12-11 サービスおよびポートとスケルトンクラスのマッピング例
![[図データ]](FIGURE/ZU111100.GIF)
- 生成されるサービスクラス
生成されるサービスクラスは,javax.xml.ws.Serviceクラスを継承し,javax.xml.ws.WebServiceClientアノテーションを持ちます。また,生成されるサービスクラスは,次のメソッドを持ちます。
- ServiceName()のコンストラクタ※1
引数はありません。このコンストラクタ中で親クラスjavax.xml.ws.Serviceのコンストラクタが呼び出されます。
- ServiceName(URL wsdlLocation, QName serviceName)のコンストラクタ※1
引数として,WSDLロケーションを示すURLとサービスのQNameを持ちます。また,このコンストラクタ中で親クラスjavax.xml.ws.Serviceのコンストラクタが呼び出されます。
- getPortName()メソッド※2
引数はありません。戻り値はSEIを実装するプロキシです。このメソッド中で,親クラスjavax.xml.ws.ServiceのgetPortメソッドが呼び出されます。このメソッドにはjavax.xml.ws.WebEndpointアノテーションが付与されます。このメソッドでエラーが発生した場合,javax.xml.ws.WebServiceExceptionがスローされます。
- getPortName(WebServiceFeature ・・・ features)メソッド※2
引数として可変長のjavax.xml.ws.WebServiceFeature型を持ちます。戻り値はSEIを実装するプロキシです。また,このメソッド中で,親クラスjavax.xml.ws.ServiceのgetPortメソッドが呼び出されます。このメソッドにはjavax.xml.ws.WebEndpointアノテーションが付与されます。このメソッドでエラーが発生した場合,javax.xml.ws.WebServiceExceptionがスローされます。
また,JAX-WS 2.1仕様に従ってこのメソッドはJavaソースに出力されますが,javax.xml.ws.WebServiceFeature型は使用できません。
- 注※1
- "ServiceName"は,サービスクラス名(wsdl:service要素のname属性)を表します。
- 注※2
- "PortName"は,ポート名(wsdl:port要素のname属性)の先頭文字を大文字にした名前を表します。
サービス名およびポート名には,次の表に示すすべての条件を満たす文字列を記述できます。ただし,バインディング宣言でカスタマイズする場合は,XML Schema仕様のxsd:NCName型として使用できる文字列を記述できます。
表12-17 サービス名およびポート名に記述できる文字列の条件
| 項番 |
条件 |
不正な文字列の例 |
不正な文字列を指定した場合の動作 |
| 1 |
半角英数字(0〜9,A〜Z,a〜z),およびアンダースコア(_)だけを使用した文字列 |
日立_service
日立_port |
動作は保証されません(エラーメッセージは表示されません)。 |
| 2 |
先頭が数字以外の文字列 |
1User_service
1User_port |
標準エラー出力とログにエラーメッセージが出力され,処理が終了されます(KDJW51029-E)。 |
All Rights Reserved. Copyright (C) 2008, 2011, Hitachi, Ltd.