Example usage for javax.xml.ws Dispatch invokeAsync

List of usage examples for javax.xml.ws Dispatch invokeAsync

Introduction

In this page you can find the example usage for javax.xml.ws Dispatch invokeAsync.

Prototype

public Future<?> invokeAsync(T msg, AsyncHandler<T> handler);

Source Link

Document

Invoke a service operation asynchronously.

Usage

From source file:org.ebayopensource.turmeric.runtime.tests.common.sif.tester.ServicePayloadExecutor.java

@SuppressWarnings({ "rawtypes", "unchecked" })
private void invokeAsyncPush(ExecutionScope scope, Service svc, List<Object> outParams) throws Exception {
    Dispatch dispatch = null;
    Future future = null;/* w w  w. j  a v  a  2 s.  c o m*/

    try {
        dispatch = svc.createDispatch(operationName);
        GenericAsyncHandler handler = new GenericAsyncHandler<MyMessage>();

        if (useInParams) {
            future = dispatch.invokeAsync(message, handler);
        } else {
            future = dispatch.invokeAsync(null, handler);
        }

        while (!future.isDone()) {
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
                break;
            }
        }

        if (handler.hasError()) {
            throw (ExecutionException) handler.getError();
        }

        outParams.add(handler.get());

        Response response = handler.getResponse();
        assertNotExpectingException();
        if (assertPayload != null) {
            byte payload[] = (byte[]) response.getContext().get("PAYLOAD");
            assertPayload.assertPayload(scope, svc, payload);
        }
        if (assertResponse != null) {
            assertResponse.assertResponse(scope, svc, new ResponseAssertableResponse(response));
        }
    } finally {

    }
}