15.1.9 サービスおよびポートからサービスクラスへのマッピング
WSDLのサービス(wsdl:service要素のname属性)およびポート(wsdl:port要素のname属性)から,サービスクラスへのマッピングについて説明します。
- 〈この項の構成〉
(1) マッピング
WSDLのサービスおよびポートと,サービスクラスは,JAX-WS 2.2仕様に従ってマッピングされます。マッピング例を次の図に示します。
また,WSDLのサービスおよびポートは,スケルトンクラスにもマッピングされます。マッピング例を次の図に示します。
-
生成されるサービスクラス
生成されるサービスクラスは,javax.xml.ws.Serviceクラスを継承し,javax.xml.ws.WebServiceClientアノテーションを持ちます。また,生成されるサービスクラスが持つメソッドを次に示します。
表15‒17 サービスクラスが持つメソッド 項番
戻り値の型
メソッド名/説明
サポート
1
−
ServiceName()※1
○
説明
このコンストラクタ中で親クラスjavax.xml.ws.Service※2 (java.net.URL wsdlDocumentLocation, javax.xml.namespace.QName serviceName)のコンストラクタが呼び出されます。
wsdlDocumentLocationおよびserviceNameは,WSDLからマッピングされた定義を使用します。
カタログ機能が有効な場合は,WSDLからマッピングした定義を,カタログファイルで指定した別のURIにマッピングし,wsdlDocumentLocationとして使用します。カタログ機能については「27. カタログ機能」を参照してください。
例外
javax.xml.ws.WebServiceException
2
−
ServiceName(javax.xml.ws.WebServiceFeature... features)※1
×
3
−
ServiceName(java.net.URL wsdlLocation)※1
○
説明
このコンストラクタ中で親クラスjavax.xml.ws.Service※2 (java.net.URL wsdlDocumentLocation, javax.xml.namespace.QName serviceName)のコンストラクタが呼び出されます。
serviceNameは,WSDLからマッピングされた定義を使用します。
カタログ機能が有効な場合は,この引数に指定したWSDLロケーションを示すURLを,別のWSDLロケーションを示すURIにマッピングします。カタログ機能については「27. カタログ機能」を参照してください。
引数
- wsdlLocation:
-
WSDLロケーションを示すURLです。
例外
javax.xml.ws.WebServiceException
4
−
ServiceName(java.net.URL wsdlLocation, javax.xml.ws.WebServiceFeature... features)※1
×
5
−
ServiceName(java.net.URL wsdlLocation, javax.xml.namespace.QName serviceName)※1
○
説明
このコンストラクタ中で親クラスjavax.xml.ws.Service※2 (java.net.URL wsdlDocumentLocation, javax.xml.namespace.QName serviceName)のコンストラクタが呼び出されます。
引数
- wsdlLocation:
-
WSDLロケーションを示すURLです。カタログ機能が有効な場合は,この引数に指定したWSDLロケーションを示すURLを,別のWSDLロケーションを示すURIにマッピングします。カタログ機能については「27. カタログ機能」を参照してください。
- serviceName:
-
サービスのQNameです。
例外
javax.xml.ws.WebServiceException
6
−
ServiceName(java.net.URL wsdlLocation, javax.xml.namespace.QName serviceName, javax.xml.ws.WebServiceFeature... features)
×
7
SEIを実装するプロキシ
getPortName()※3
○
説明
親クラスjavax.xml.ws.ServiceのgetPort※2 (javax.xml.namespace.QName portName, java.lang.Class<T> serviceEndpointInterface)メソッドが呼び出されます。
portNameおよびserviceEndpointInterfaceは,WSDLからマッピングされた定義を使用します。
このメソッドにはjavax.xml.ws.WebEndpointアノテーションが付与されます。
例外
javax.xml.ws.WebServiceException
8
SEIを実装するプロキシ
getPortName(javax.xml.ws.WebServiceFeature... features)※3
○
説明
親クラスjavax.xml.ws.ServiceのgetPort※2 (javax.xml.namespace.QName portName, java.lang.Class<T> serviceEndpointInterface, WebServiceFeature... features)メソッドが呼び出されます。
portNameおよびserviceEndpointInterfaceは,WSDLからマッピングされた定義を使用します。
このメソッドにはjavax.xml.ws.WebEndpointアノテーションが付与されます。
引数
- features:
-
可変長のjavax.xml.ws.WebServiceFeature型です。
例外
javax.xml.ws.WebServiceException
(2) サービス名およびポート名の条件
サービス名およびポート名には,次の表に示すすべての条件を満たす文字列を記述できます。ただし,バインディング宣言でカスタマイズする場合は,XML Schema仕様のxsd:NCName型として使用できる文字列を記述できます。