Search in sources :

Example 1 with AddNumbersSubException

use of org.apache.cxf.jaxws.service.AddNumbersSubException in project cxf by apache.

the class CodeFirstTest method testException.

@Test
public void testException() throws Exception {
    Hello serviceImpl = new Hello();
    try (EndpointImpl ep = new EndpointImpl(getBus(), serviceImpl, (String) null)) {
        ep.publish("local://localhost:9090/hello");
        ep.getServer().getEndpoint().getInInterceptors().add(new LoggingInInterceptor());
        ep.getServer().getEndpoint().getOutInterceptors().add(new LoggingOutInterceptor());
        QName serviceName = new QName("http://service.jaxws.cxf.apache.org/", "HelloService");
        QName portName = new QName("http://service.jaxws.cxf.apache.org/", "HelloPort");
        // need to set the same bus with service , so use the ServiceImpl
        ServiceImpl service = new ServiceImpl(getBus(), (URL) null, serviceName, null);
        service.addPort(portName, "http://schemas.xmlsoap.org/soap/", "local://localhost:9090/hello");
        HelloInterface proxy = service.getPort(portName, HelloInterface.class);
        ClientProxy.getClient(proxy).getInFaultInterceptors().add(new LoggingInInterceptor());
        ClientProxy.getClient(proxy).getInInterceptors().add(new LoggingInInterceptor());
        try {
            proxy.addNumbers(1, -2);
            fail("should throw AddNumbersException");
        } catch (AddNumbersException e) {
            assertEquals(e.getInfo(), "Sum is less than 0.");
        }
        try {
            proxy.addNumbers(1, 99);
            fail("should throw AddNumbersSubException");
        } catch (AddNumbersSubException e) {
            assertEquals(e.getSubInfo(), "Sum is 100");
        } catch (AddNumbersException e) {
            fail("should throw AddNumbersSubException");
        }
        try (AutoCloseable c = (AutoCloseable) proxy) {
            assertEquals("Result = 2", proxy.addNumbers(1, 1));
        }
        try {
            proxy.addNumbers(1, 1);
            fail("Proxy should be closed");
        } catch (IllegalStateException t) {
        // this is expected as the client is closed.
        }
    }
}
Also used : AddNumbersException(org.apache.cxf.jaxws.service.AddNumbersException) AddNumbersSubException(org.apache.cxf.jaxws.service.AddNumbersSubException) Hello(org.apache.cxf.jaxws.service.Hello) LoggingOutInterceptor(org.apache.cxf.ext.logging.LoggingOutInterceptor) QName(javax.xml.namespace.QName) ArrayServiceImpl(org.apache.cxf.jaxws.service.ArrayServiceImpl) FooServiceImpl(org.apache.cxf.jaxws.service.FooServiceImpl) HelloInterface(org.apache.cxf.jaxws.service.HelloInterface) LoggingInInterceptor(org.apache.cxf.ext.logging.LoggingInInterceptor) Test(org.junit.Test)

Aggregations

QName (javax.xml.namespace.QName)1 LoggingInInterceptor (org.apache.cxf.ext.logging.LoggingInInterceptor)1 LoggingOutInterceptor (org.apache.cxf.ext.logging.LoggingOutInterceptor)1 AddNumbersException (org.apache.cxf.jaxws.service.AddNumbersException)1 AddNumbersSubException (org.apache.cxf.jaxws.service.AddNumbersSubException)1 ArrayServiceImpl (org.apache.cxf.jaxws.service.ArrayServiceImpl)1 FooServiceImpl (org.apache.cxf.jaxws.service.FooServiceImpl)1 Hello (org.apache.cxf.jaxws.service.Hello)1 HelloInterface (org.apache.cxf.jaxws.service.HelloInterface)1 Test (org.junit.Test)1