Cosminexus V9 アプリケーションサーバ Webサービス開発ガイド

[目次][用語][索引][前へ][次へ]

19.2.2 クライアントAPI

ここでは,クライアントAPIのサポート範囲について説明します。

<この項の構成>
(1) javax.xml.ws.BindingProviderインタフェース
(2) javax.xml.ws.Dispatchインタフェース
(3) javax.xml.ws.EndpointReferenceクラス
(4) javax.xml.ws.Serviceクラス
(5) javax.xml.ws.wsaddressing.W3CEndpointReferenceクラス

(1) javax.xml.ws.BindingProviderインタフェース

javax.xml.ws.BindingProviderインタフェースのサポート範囲を次の表に示します。詳細はJAX-WS 2.2仕様を参照してください。

表19-4 javax.xml.ws.BindingProviderインタフェースのサポート範囲

項番 戻り値の型 メソッド名/説明 サポート
1 Binding getBinding()
説明 このバインディングプロバイダのバインディングを取得します。
2 EndpointReference getEndpointReference() ×
3 <T extends EndpointReference> T getEndpointReference (java.lang.Class<T> clazz) ×
4 java.util.Map <java.lang.String, java.lang.Object> getRequestContext()
説明 要求メッセージのメッセージコンテキストを初期化するために使用されるコンテキストを取得します。
5 java.util.Map <java.lang.String, java.lang.Object> getResponseContext()
説明 応答メッセージの処理によって得られたコンテキストを取得します。応答メッセージが処理される前に呼び出した場合はnullを返します。one-wayオペレーションの場合は,レスポンスメッセージが存在しないため,このメソッドを呼び出さないでください。one-wayオペレーションで使用したときの動作は保証されません。

(凡例)
○:Application ServerのJAX-WS機能でサポートしています。
×:Application ServerのJAX-WS機能でサポートしていません。

(2) javax.xml.ws.Dispatchインタフェース

javax.xml.ws.Dispatchインタフェースのサポート範囲を次の表に示します。詳細はJAX-WS 2.2仕様を参照してください。

表19-5 javax.xml.ws.Dispatchインタフェースのサポート範囲

項番 戻り値の型 メソッド名 サポート
1 T invoke(T msg)
2 Response<T> invokeAsync(T msg) ×
3 java.util.concurrent.Future<?> invokeAsync(T msg, AsyncHandler<T> handler) ×
4 void invokeOneWay(T msg)

(凡例)
○:Application ServerのJAX-WS機能でサポートしています。
×:Application ServerのJAX-WS機能でサポートしていません。

(3) javax.xml.ws.EndpointReferenceクラス

javax.xml.ws.EndpointReferenceクラスのサポート範囲を次の表に示します。詳細はJAX-WS 2.2仕様を参照してください。

表19-6 javax.xml.ws.EndpointReferenceクラスのサポート範囲

項番 戻り値の型 メソッド名 サポート
1 EndpointReference()
2 <T> T getPort (java.lang.Class<T> serviceEndpointInterface, WebServiceFeature... features) ×
3 static EndpointReference readFrom (javax.xml.transform.Source eprInfoset)
4 java.lang.String toString() ×
5 abstract void writeTo(javax.xml.transform.Result result) ×

(凡例)
−:戻り値の型がないことを示します。
○:Application ServerのJAX-WS機能でサポートしています。
×:Application ServerのJAX-WS機能でサポートしていません。

(4) javax.xml.ws.Serviceクラス

javax.xml.ws.Serviceクラスのサポート範囲を次の表に示します。詳細はJAX-WS 2.2仕様を参照してください。

表19-7 javax.xml.ws.Serviceクラスのサポート範囲

項番 戻り値の型 メソッド名/説明 サポート
1 Service(java.net.URL wsdlDocumentLocation, javax.xml.namespace.QName serviceName)
説明 Serviceインスタンスを生成するコンストラクタです。
引数

wsdlDocumentLocation:
WSDL文書の位置です。nullを指定した場合,Serviceコンストラクタを呼び出しているクラスに設定されているjavax.xml.ws.WebServiceClientアノテーションのwsdlLocation属性の値が設定されます。指定するURLの形式については,java.net.URLクラスの仕様に従ってください。なお,カタログ機能が有効な場合,この引数に指定した値を,カタログファイルで指定した別のWSDLロケーションを示すURIにマッピングします。

serviceName:
サービスの名前です。
例外

javax.xml.ws.WebServiceException:
次の場合に発生します。
  • wsdlDocumentLocationに,存在しないローカルパス名を指定した場合
  • wsdlDocumentLocationに,「?wsdl」付きの存在しないHTTPのURLを指定した場合
  • wsdlDocumentLocationに,「?wsdl」付きではない存在しないHTTPのURLを指定した場合
  • serviceNameにnullを指定した場合
  • serviceNameに,WSDLのサービス名(wsdl:service要素のname属性の値)以外のQNameを指定した場合
  • wsdlDocumentLocationにnullを指定し,かつServiceコンストラクタを呼び出しているクラスでjavax.xml.ws.WebServiceClientアノテーションを使用していない場合
  • wsdlDocumentLocationにnullを指定し,かつServiceコンストラクタを呼び出しているクラスのjavax.jws.WebServiceアノテーションで,wsdlLocation属性が設定されていない場合
2 void addPort(javax.xml.namespace.QName portName, java.lang.String bindingId, java.lang.String endpointAddress)
例外 javax.xml.ws.WebServiceException:
生成済みのポート名を指定した場合に発生します。
注意 portNameは,createDispatch()を呼び出すときに同じQNameを指定する必要があります。nullは指定できません。
bindingIdにnullを指定した場合は,SOAP1.1/HTTPのバインディングIDが設定されます。
3 static Service create(javax.xml.namespace.QName serviceName)
4 static Service create(javax.xml.namespace.QName serviceName, javax.xml.ws.WebServiceFeature ... features) ×
5 static Service create(java.net.URL wsdlDocumentLocation, javax.xml.namespace.QName serviceName)
説明 Serviceインスタンスを生成します。
引数

wsdlDocumentLocation:
WSDL文書の位置です。指定するURLの形式についてはjava.net.URLクラスの仕様に従ってください。

serviceName:
WSDLのサービス名(wsdl:service要素のname属性値)です。
例外

javax.xml.ws.WebServiceException:
次の場合に発生します。
  • wsdlDocumentLocationに存在しないローカルパス名を指定した場合
  • wsdlDocumentLocationに,「?wsdl」付きの存在しないHTTPのURLを指定した場合
  • wsdlDocumentLocationに,「?wsdl」付きではない存在しないHTTPのURLを指定した場合
  • serviceNameに,WSDLのサービス名(wsdl:service要素のname属性の値)以外を指定した場合(ただし,wsdlDocumentLocationにnullを指定した場合を除く)
6 static Service create(java.net.URL wsdlDocumentLocation, javax.xml.namespace.QName serviceName, javax.xml.ws.WebServiceFeature ... features) ×
7 <T> Dispatch<T> createDispatch (EndpointReference endpointReference, java.lang.Class<T> type, Service.Mode mode, WebServiceFeature... features) ×
8 Dispatch <java.lang.Object> createDispatch (EndpointReference endpointReference, javax.xml.bind.JAXBContext context, Service.Mode mode, WebServiceFeature... features) ×
9 <T> Dispatch<T> createDispatch (javax.xml.namespace.QName portName, java.lang.Class<T> type, Service.Mode mode)
注意 portNameは,addPort()の引数に指定するポート名と同じものを指定する必要があります。nullは指定できません。
10 <T> Dispatch<T> createDispatch (javax.xml.namespace.QName portName, java.lang.Class<T> type, Service.Mode mode, WebServiceFeature... features) ×
11 Dispatch <java.lang.Object> createDispatch (javax.xml.namespace.QName portName, javax.xml.bind.JAXBContext context, Service.Mode mode)
注意 portNameは,addPort()の引数に指定するポート名と同じものを指定する必要があります。nullは指定できません。
12 Dispatch <java.lang.Object> createDispatch (javax.xml.namespace.QName portName, javax.xml.bind.JAXBContext context, Service.Mode mode, WebServiceFeature... features) ×
13 java.util.concurrent.Executor getExecutor() ×
14 HandlerResolver getHandlerResolver()
説明 このServiceインスタンスによって使用されているHandlerResolverインスタンスを返します。存在しない場合はnullを返します。
15 <T> T getPort (java.lang.Class<T> serviceEndpointInterface)
説明 ポート(サービスにアクセスするためのプロキシ)を返します。
引数

serviceEndpointInterface:
SEIのClassクラスです。
例外

javax.xml.ws.WebServiceException:
次の場合に発生します。
  • serviceEndpointInterfaceがnullの場合
  • wsdlDocumentLocationにnullを指定したService.create()で生成したServiceインスタンスから呼び出した場合
  • javax.jws.WebServiceアノテーションを使用していないSEIを引数に指定した場合
  • このメソッドを呼び出す前に,nullを返すgetHandlerChain()を実装したHandlerResolverオブジェクトをsetHandlerResolver()で設定している場合
  • このメソッドを呼び出す前に,論理ハンドラでもSOAPハンドラでもない,ハンドラを含むハンドラチェインを返すgetHandlerChain()を実装したHandlerResolverオブジェクトをsetHandlerResolver()で設定している場合
16 <T> T getPort (java.lang.Class<T> serviceEndpointInterface, WebServiceFeature... features) ×
17 <T> T getPort(EndpointReference endpointReference, java.lang.Class<T> serviceEndpointInterface, WebServiceFeature... features)
説明 ポート(サービスにアクセスするためのプロキシ)を返します。
引数

endpointReference:
ポートによって呼び出されるサービスエンドポイントです。

serviceEndpointInterface:
SEIのClassクラスです。

features:
ポート上で構成するWebServiceFeatureのリストです。
例外

javax.xml.ws.WebServiceException:
次の場合に発生します。
  • ポートの生成中に例外が発生した場合
  • このメソッドの処理に必要なWSDLが存在しない場合
  • endpointReferenceメタデータがServiceインスタンスのserviceNameに合っていない場合
  • WSDLまたはendpointReferenceメタデータからportNameを抽出できない場合
  • 無効なendpointReferenceが指定された場合
  • 無効なserviceEndpointInterfaceが指定された場合
  • ポートと互換性がない,またはサポートされていないWebServiceFeatureが指定された場合
18 <T> T getPort(javax.xml.namespace.QName portName, java.lang.Class<T> serviceEndpointInterface)
説明 ポート(サービスにアクセスするためのプロキシ)を返します。
引数

portName:
WSDLのポート名(wsdl:port要素のname属性の値)です。

serviceEndpointInterface:
SEIのClassクラスです。
例外

javax.xml.ws.WebServiceException:
次の場合に発生します。
  • portNameにWSDLのポート名(wsdl:port要素のname属性の値)以外のQNameを指定した場合
  • portNameがnullの場合
  • serviceEndpointInterfaceがnullの場合
19 <T> T getPort(javax.xml.namespace.QName portName, java.lang.Class<T> serviceEndpointInterface, WebServiceFeature... features) ×
20 java.util.Iterator <javax.xml.namespace.QName> getPorts()
説明 サービスエンドポイント(WSDLに含まれるポート(wsdl:port要素))を表すQNameのリストのIteratorを返します。
例外

javax.xml.ws.WebServiceException:
wsdlDocumentLocationにnullを指定して生成したServiceインスタンスに対して,Service.create()メソッドを呼び出した場合に発生します。
21 javax.xml.namespace.QName getServiceName()
説明 このサービスの名前(WSDLのサービス名(wsdl:service要素のname属性の値))を返します。
22 java.net.URL getWSDLDocumentLocation()
説明 このサービスのWSDLファイルの位置を返します。引数wsdlDocumentLocationにnullを指定して生成したServiceインスタンスに対して,Service.create()メソッドを呼び出した場合にはnullを返します。
23 void setExecutor (java.util.concurrent.Executor executor) ×
24 void setHandlerResolver (HandlerResolver handlerResolver)
説明 このServiceインスタンスのHandlerResolverインスタンスを設定してください。

(凡例)
−:戻り値の型がないことを示します。
○:Application ServerのJAX-WS機能でサポートしています。
×:Application ServerのJAX-WS機能でサポートしていません。

注※
getPortメソッドで可変長引数を指定した場合の動作を次の表に示します。

表19-8 可変長引数の指定方法と動作

項番 指定方法 指定例 動作
1 引数を省略 getPort(epr, sei) 可変長引数が指定されなかったと見なします。
2 引数を一つ指定 getPort(epr, sei, new FooFeatures()) 可変長引数が一つ指定されたと見なします。
3 引数を二つ指定 getPort(epr, sei,
new FooFeatures(),
new BarFeatures())
可変長引数が二つ指定されたと見なします。
4 引数にnullを指定 getPort(epr, sei, null) 可変長引数が指定されなかったと見なします。
5 引数にnullを指定してWebServiceFeature 型にキャスト getPort(epr, sei,
(WebServiceFeature) null)
内容がnullの可変長引数が指定されたと見なし,例外NullPointerExceptionが発生します。
6 引数にnullを指定してWebServiceFeature 型の配列にキャスト getPort(epr, sei,
(WebServiceFeature[]) null)
可変長引数が指定されなかったと見なします。

(5) javax.xml.ws.wsaddressing.W3CEndpointReferenceクラス

javax.xml.ws.wsaddressing.W3CEndpointReferenceクラスのサポート範囲を次の表に示します。詳細はJAX-WS 2.2仕様を参照してください。

表19-9 javax.xml.ws.wsaddressing.W3CEndpointReferenceクラスのサポート範囲

項番 戻り値の型 メソッド名 サポート
1 W3CEndpointReference()
2 W3CEndpointReference (javax.xml.transform.Source source)
3 void writeTo(javax.xml.transform.Result result) ×

(凡例)
−:戻り値の型がないことを示します。
○:Application ServerのJAX-WS機能でサポートしています。
×:Application ServerのJAX-WS機能でサポートしていません。