Search in sources :

Example 1 with HelloServiceImpl

use of org.apache.cxf.service.factory.HelloServiceImpl in project cxf by apache.

the class SoapBindingSelectionTest method testMultipleSoapBindings.

@Test
public void testMultipleSoapBindings() throws Exception {
    ServerFactoryBean svrBean1 = new ServerFactoryBean();
    svrBean1.setAddress("http://localhost/Hello");
    svrBean1.setServiceClass(HelloService.class);
    svrBean1.setServiceBean(new HelloServiceImpl());
    svrBean1.setBus(getBus());
    svrBean1.getInInterceptors().add(new AbstractPhaseInterceptor<Message>(Phase.USER_LOGICAL) {

        public void handleMessage(Message message) throws Fault {
            service1Invoked = true;
        }
    });
    svrBean1.create();
    ServerFactoryBean svrBean2 = new ServerFactoryBean();
    svrBean2.setAddress("http://localhost/Hello");
    svrBean2.setServiceClass(HelloService.class);
    svrBean2.setServiceBean(new HelloServiceImpl());
    svrBean2.setBus(getBus());
    svrBean2.getInInterceptors().add(new AbstractPhaseInterceptor<Message>(Phase.USER_LOGICAL) {

        public void handleMessage(Message message) throws Fault {
            service2Invoked = true;
        }
    });
    SoapBindingConfiguration config = new SoapBindingConfiguration();
    config.setVersion(Soap12.getInstance());
    svrBean2.setBindingConfig(config);
    ServerImpl server2 = (ServerImpl) svrBean2.create();
    Destination d = server2.getDestination();
    MessageObserver mo = d.getMessageObserver();
    assertTrue(mo instanceof MultipleEndpointObserver);
    MultipleEndpointObserver meo = (MultipleEndpointObserver) mo;
    assertEquals(2, meo.getEndpoints().size());
    Node nd = invoke("http://localhost/Hello", LocalTransportFactory.TRANSPORT_ID, "soap11.xml");
    assertEquals("http://schemas.xmlsoap.org/soap/envelope/", getNs(nd));
    assertTrue(service1Invoked);
    assertFalse(service2Invoked);
    service1Invoked = false;
    nd = invoke("http://localhost/Hello", LocalTransportFactory.TRANSPORT_ID, "soap12.xml");
    assertEquals("http://www.w3.org/2003/05/soap-envelope", getNs(nd));
    assertFalse(service1Invoked);
    assertTrue(service2Invoked);
    server2.stop();
    server2.start();
    nd = invoke("http://localhost/Hello", LocalTransportFactory.TRANSPORT_ID, "soap12.xml");
    assertEquals("http://www.w3.org/2003/05/soap-envelope", getNs(nd));
    assertFalse(service1Invoked);
    assertTrue(service2Invoked);
}
Also used : Destination(org.apache.cxf.transport.Destination) MessageObserver(org.apache.cxf.transport.MessageObserver) Message(org.apache.cxf.message.Message) ServerImpl(org.apache.cxf.endpoint.ServerImpl) SoapBindingConfiguration(org.apache.cxf.binding.soap.SoapBindingConfiguration) MultipleEndpointObserver(org.apache.cxf.transport.MultipleEndpointObserver) Node(org.w3c.dom.Node) ServerFactoryBean(org.apache.cxf.frontend.ServerFactoryBean) HelloServiceImpl(org.apache.cxf.service.factory.HelloServiceImpl) Fault(org.apache.cxf.interceptor.Fault) Test(org.junit.Test) AbstractSimpleFrontendTest(org.apache.cxf.service.factory.AbstractSimpleFrontendTest)

Example 2 with HelloServiceImpl

use of org.apache.cxf.service.factory.HelloServiceImpl in project cxf by apache.

the class SpringBeansTest method testServers.

@Test
public void testServers() throws Exception {
    ctx = new ClassPathXmlApplicationContext(new String[] { "/org/apache/cxf/frontend/spring/servers.xml" });
    ServerFactoryBean bean = (ServerFactoryBean) ctx.getBean("simple");
    assertNotNull(bean);
    if (!(bean.getServiceBean() instanceof HelloServiceImpl)) {
        fail("can't get the right serviceBean");
    }
    bean = (ServerFactoryBean) ctx.getBean("inlineImplementor");
    if (!(bean.getServiceBean() instanceof HelloServiceImpl)) {
        fail("can't get the right serviceBean");
    }
    bean = (ServerFactoryBean) ctx.getBean("inlineSoapBinding");
    assertNotNull(bean);
    BindingConfiguration bc = bean.getBindingConfig();
    assertTrue(bc instanceof SoapBindingConfiguration);
    SoapBindingConfiguration sbc = (SoapBindingConfiguration) bc;
    assertTrue(sbc.getVersion() instanceof Soap12);
    bean = (ServerFactoryBean) ctx.getBean("simpleWithBindingId");
    assertEquals("get the wrong BindingId", bean.getBindingId(), "http://cxf.apache.org/bindings/xformat");
    bean = (ServerFactoryBean) ctx.getBean("simpleWithWSDL");
    assertNotNull(bean);
    assertEquals(bean.getWsdlLocation(), "org/apache/cxf/frontend/spring/simple.wsdl");
    bean = (ServerFactoryBean) ctx.getBean("proxyBean");
    assertNotNull(bean);
}
Also used : Soap12(org.apache.cxf.binding.soap.Soap12) ClassPathXmlApplicationContext(org.springframework.context.support.ClassPathXmlApplicationContext) SoapBindingConfiguration(org.apache.cxf.binding.soap.SoapBindingConfiguration) ServerFactoryBean(org.apache.cxf.frontend.ServerFactoryBean) HelloServiceImpl(org.apache.cxf.service.factory.HelloServiceImpl) BindingConfiguration(org.apache.cxf.binding.BindingConfiguration) SoapBindingConfiguration(org.apache.cxf.binding.soap.SoapBindingConfiguration) Test(org.junit.Test)

Aggregations

SoapBindingConfiguration (org.apache.cxf.binding.soap.SoapBindingConfiguration)2 ServerFactoryBean (org.apache.cxf.frontend.ServerFactoryBean)2 HelloServiceImpl (org.apache.cxf.service.factory.HelloServiceImpl)2 Test (org.junit.Test)2 BindingConfiguration (org.apache.cxf.binding.BindingConfiguration)1 Soap12 (org.apache.cxf.binding.soap.Soap12)1 ServerImpl (org.apache.cxf.endpoint.ServerImpl)1 Fault (org.apache.cxf.interceptor.Fault)1 Message (org.apache.cxf.message.Message)1 AbstractSimpleFrontendTest (org.apache.cxf.service.factory.AbstractSimpleFrontendTest)1 Destination (org.apache.cxf.transport.Destination)1 MessageObserver (org.apache.cxf.transport.MessageObserver)1 MultipleEndpointObserver (org.apache.cxf.transport.MultipleEndpointObserver)1 ClassPathXmlApplicationContext (org.springframework.context.support.ClassPathXmlApplicationContext)1 Node (org.w3c.dom.Node)1