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インタフェースのサポート範囲

項番戻り値の型メソッド名/説明サポート
1BindinggetBinding()
説明このバインディングプロバイダのバインディングを取得します。
2EndpointReferencegetEndpointReference()×
3<T extends EndpointReference> TgetEndpointReference (java.lang.Class<T> clazz)×
4java.util.Map <java.lang.String, java.lang.Object>getRequestContext()
説明要求メッセージのメッセージコンテキストを初期化するために使用されるコンテキストを取得します。
5java.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インタフェースのサポート範囲

項番戻り値の型メソッド名サポート
1Tinvoke(T msg)
2Response<T>invokeAsync(T msg)×
3java.util.concurrent.Future<?>invokeAsync(T msg, AsyncHandler<T> handler)×
4voidinvokeOneWay(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クラスのサポート範囲

項番戻り値の型メソッド名サポート
1EndpointReference()
2<T> TgetPort (java.lang.Class<T> serviceEndpointInterface, WebServiceFeature... features)×
3static EndpointReferencereadFrom (javax.xml.transform.Source eprInfoset)
4java.lang.StringtoString()×
5abstract voidwriteTo(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クラスのサポート範囲

項番戻り値の型メソッド名/説明サポート
1Service(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属性が設定されていない場合
2voidaddPort(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が設定されます。
3static Servicecreate(javax.xml.namespace.QName serviceName)
4static Servicecreate(javax.xml.namespace.QName serviceName, javax.xml.ws.WebServiceFeature ... features)×
5static Servicecreate(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を指定した場合を除く)
6static Servicecreate(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)×
8Dispatch <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)×
11Dispatch <java.lang.Object>createDispatch (javax.xml.namespace.QName portName, javax.xml.bind.JAXBContext context, Service.Mode mode)
注意portNameは,addPort()の引数に指定するポート名と同じものを指定する必要があります。nullは指定できません。
12Dispatch <java.lang.Object>createDispatch (javax.xml.namespace.QName portName, javax.xml.bind.JAXBContext context, Service.Mode mode, WebServiceFeature... features)×
13java.util.concurrent.ExecutorgetExecutor()×
14HandlerResolvergetHandlerResolver()
説明このServiceインスタンスによって使用されているHandlerResolverインスタンスを返します。存在しない場合はnullを返します。
15<T> TgetPort (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> TgetPort (java.lang.Class<T> serviceEndpointInterface, WebServiceFeature... features)×
17<T> TgetPort(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> TgetPort(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> TgetPort(javax.xml.namespace.QName portName, java.lang.Class<T> serviceEndpointInterface, WebServiceFeature... features)×
20java.util.Iterator <javax.xml.namespace.QName>getPorts()
説明サービスエンドポイント(WSDLに含まれるポート(wsdl:port要素))を表すQNameのリストのIteratorを返します。
例外
javax.xml.ws.WebServiceException:
wsdlDocumentLocationにnullを指定して生成したServiceインスタンスに対して,Service.create()メソッドを呼び出した場合に発生します。
21javax.xml.namespace.QNamegetServiceName()
説明このサービスの名前(WSDLのサービス名(wsdl:service要素のname属性の値))を返します。
22java.net.URLgetWSDLDocumentLocation()
説明このサービスのWSDLファイルの位置を返します。引数wsdlDocumentLocationにnullを指定して生成したServiceインスタンスに対して,Service.create()メソッドを呼び出した場合にはnullを返します。
23voidsetExecutor (java.util.concurrent.Executor executor)×
24voidsetHandlerResolver (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クラスのサポート範囲

項番戻り値の型メソッド名サポート
1W3CEndpointReference()
2W3CEndpointReference (javax.xml.transform.Source source)
3voidwriteTo(javax.xml.transform.Result result)×
(凡例)
-:戻り値の型がないことを示します。
○:Application ServerのJAX-WS機能でサポートしています。
×:Application ServerのJAX-WS機能でサポートしていません。