Search in sources :

Example 11 with Response

use of javax.xml.ws.Response in project cxf by apache.

the class AsyncHTTPConduitTest method testCallAsyncCallbackInvokedOnlyOnce.

@Test
public void testCallAsyncCallbackInvokedOnlyOnce() throws Exception {
    // This test is especially targeted for RHEL 6.8
    updateAddressPort(g, PORT_INV);
    int repeat = 100;
    final AtomicInteger count = new AtomicInteger(0);
    for (int i = 0; i < repeat; i++) {
        try {
            g.greetMeAsync(request, new AsyncHandler<GreetMeResponse>() {

                public void handleResponse(Response<GreetMeResponse> res) {
                    count.incrementAndGet();
                }
            }).get();
        } catch (Exception e) {
        }
    }
    Thread.sleep(1000);
    assertEquals("Callback should be invoked only once per request", repeat, count.intValue());
}
Also used : GreetMeLaterResponse(org.apache.hello_world_soap_http.types.GreetMeLaterResponse) GreetMeResponse(org.apache.hello_world_soap_http.types.GreetMeResponse) Response(javax.xml.ws.Response) AsyncHandler(javax.xml.ws.AsyncHandler) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Endpoint(javax.xml.ws.Endpoint) ExecutionException(java.util.concurrent.ExecutionException) Test(org.junit.Test)

Example 12 with Response

use of javax.xml.ws.Response in project cxf by apache.

the class JMSClientServerTest method testAsyncCall.

@Ignore
@Test
public void testAsyncCall() throws Exception {
    QName serviceName = new QName("http://cxf.apache.org/hello_world_jms", "HelloWorldService");
    QName portName = new QName("http://cxf.apache.org/hello_world_jms", "HelloWorldPort");
    URL wsdl = getWSDLURL("/wsdl/jms_test.wsdl");
    HelloWorldService service = new HelloWorldService(wsdl, serviceName);
    HelloWorldPortType greeter = service.getPort(portName, HelloWorldPortType.class);
    final Thread thread = Thread.currentThread();
    class TestAsyncHandler implements AsyncHandler<String> {

        String expected;

        TestAsyncHandler(String x) {
            expected = x;
        }

        public String getExpected() {
            return expected;
        }

        public void handleResponse(Response<String> response) {
            try {
                Thread thread2 = Thread.currentThread();
                assertNotSame(thread, thread2);
                assertEquals("Hello " + expected, response.get());
            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (ExecutionException e) {
                e.printStackTrace();
            }
        }
    }
    TestAsyncHandler h1 = new TestAsyncHandler("Homer");
    TestAsyncHandler h2 = new TestAsyncHandler("Maggie");
    TestAsyncHandler h3 = new TestAsyncHandler("Bart");
    TestAsyncHandler h4 = new TestAsyncHandler("Lisa");
    TestAsyncHandler h5 = new TestAsyncHandler("Marge");
    Future<?> f1 = greeter.greetMeAsync("Santa's Little Helper", new TestAsyncHandler("Santa's Little Helper"));
    f1.get();
    f1 = greeter.greetMeAsync("PauseForTwoSecs Santa's Little Helper", new TestAsyncHandler("Santa's Little Helper"));
    long start = System.currentTimeMillis();
    f1 = greeter.greetMeAsync("PauseForTwoSecs " + h1.getExpected(), h1);
    Future<?> f2 = greeter.greetMeAsync("PauseForTwoSecs " + h2.getExpected(), h2);
    Future<?> f3 = greeter.greetMeAsync("PauseForTwoSecs " + h3.getExpected(), h3);
    Future<?> f4 = greeter.greetMeAsync("PauseForTwoSecs " + h4.getExpected(), h4);
    Future<?> f5 = greeter.greetMeAsync("PauseForTwoSecs " + h5.getExpected(), h5);
    long mid = System.currentTimeMillis();
    assertEquals("Hello " + h1.getExpected(), f1.get());
    assertEquals("Hello " + h2.getExpected(), f2.get());
    assertEquals("Hello " + h3.getExpected(), f3.get());
    assertEquals("Hello " + h4.getExpected(), f4.get());
    assertEquals("Hello " + h5.getExpected(), f5.get());
    long end = System.currentTimeMillis();
    assertTrue("Time too long: " + (mid - start), (mid - start) < 1000);
    assertTrue((end - mid) > 1000);
    f1 = null;
    f2 = null;
    f3 = null;
    f4 = null;
    f5 = null;
    ((java.io.Closeable) greeter).close();
    greeter = null;
    service = null;
    System.gc();
}
Also used : AsyncHandler(javax.xml.ws.AsyncHandler) QName(javax.xml.namespace.QName) HelloWorldService(org.apache.cxf.hello_world_jms.HelloWorldService) Closeable(java.io.Closeable) HelloWorldPortType(org.apache.cxf.hello_world_jms.HelloWorldPortType) URL(java.net.URL) Response(javax.xml.ws.Response) ExecutionException(java.util.concurrent.ExecutionException) Ignore(org.junit.Ignore) Test(org.junit.Test)

Aggregations

Response (javax.xml.ws.Response)12 Test (org.junit.Test)10 ExecutionException (java.util.concurrent.ExecutionException)9 AsyncHandler (javax.xml.ws.AsyncHandler)8 GreetMeLaterResponse (org.apache.hello_world_soap_http.types.GreetMeLaterResponse)6 GreetMeResponse (org.apache.hello_world_soap_http.types.GreetMeResponse)6 URL (java.net.URL)4 Endpoint (javax.xml.ws.Endpoint)4 SOAPService (org.apache.hello_world_soap_http.SOAPService)4 QName (javax.xml.namespace.QName)3 Greeter (org.apache.hello_world_soap_http.Greeter)3 UndeclaredThrowableException (java.lang.reflect.UndeclaredThrowableException)2 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)2 JAXBElement (javax.xml.bind.JAXBElement)2 HTTPConduit (org.apache.cxf.transport.http.HTTPConduit)2 HelloType (org.apache.cxf.ws.discovery.wsdl.HelloType)2 ObjectFactory (org.apache.cxf.ws.discovery.wsdl.ObjectFactory)2 SOAPServiceBogusAddressTest (org.apache.hello_world_soap_http.SOAPServiceBogusAddressTest)2 SOAPServiceMultiPortTypeTest (org.apache.hello_world_soap_http.SOAPServiceMultiPortTypeTest)2 BareDocumentResponse (org.apache.hello_world_soap_http.types.BareDocumentResponse)2