9.16.5. 非同期の呼び出し
BindingProvider インターフェースはクライアントによる使用を目的としたプロトコルバインディングを提供するコンポーネントを表し、 プロキシによって実装、 Dispatch インターフェースによって拡張されます。
BindingProvider インスタンスは非同期の動作機能を提供することができます。 使用した場合、 動作が完了するとレスポンスコンテキストは更新されないなど、 呼び出し時に非同期の動作呼び出しが BindingProvider インスタンスから分離されます。 代わりに、 別のレスポンスコンテキストが Response インターフェースを使って利用できるようになります。
public void testInvokeAsync() throws Exception
{
URL wsdlURL = new URL("http://" + getServerHost() + ":8080/jaxws-samples-asynchronous?wsdl");
QName serviceName = new QName(targetNS, "TestEndpointService");
Service service = Service.create(wsdlURL, serviceName);
TestEndpoint port = service.getPort(TestEndpoint.class);
Response response = port.echoAsync("Async");
// access future
String retStr = (String) response.get();
assertEquals("Async", retStr);
}