Java Code Examples for org.apache.cxf.frontend.ServerFactoryBean#setServiceBean()

The following examples show how to use org.apache.cxf.frontend.ServerFactoryBean#setServiceBean() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: WebServiceProtocol.java    From dubbox with Apache License 2.0 6 votes vote down vote up
protected <T> Runnable doExport(T impl, Class<T> type, URL url) throws RpcException {
	String addr = url.getIp() + ":" + url.getPort();
    HttpServer httpServer = serverMap.get(addr);
    if (httpServer == null) {
        httpServer = httpBinder.bind(url, new WebServiceHandler());
        serverMap.put(addr, httpServer);
    }
    final ServerFactoryBean serverFactoryBean = new ServerFactoryBean();
    serverFactoryBean.setAddress(url.getAbsolutePath());
	serverFactoryBean.setServiceClass(type);
	serverFactoryBean.setServiceBean(impl);
	serverFactoryBean.setBus(bus);
    serverFactoryBean.setDestinationFactory(transportFactory);
	serverFactoryBean.create();
    return new Runnable() {
        public void run() {
        	serverFactoryBean.destroy();
        }
    };
}
 
Example 2
Source File: WebServiceProtocol.java    From dubbox-hystrix with Apache License 2.0 6 votes vote down vote up
protected <T> Runnable doExport(T impl, Class<T> type, URL url) throws RpcException {
	String addr = url.getIp() + ":" + url.getPort();
    HttpServer httpServer = serverMap.get(addr);
    if (httpServer == null) {
        httpServer = httpBinder.bind(url, new WebServiceHandler());
        serverMap.put(addr, httpServer);
    }
    final ServerFactoryBean serverFactoryBean = new ServerFactoryBean();
    serverFactoryBean.setAddress(url.getAbsolutePath());
	serverFactoryBean.setServiceClass(type);
	serverFactoryBean.setServiceBean(impl);
	serverFactoryBean.setBus(bus);
    serverFactoryBean.setDestinationFactory(transportFactory);
	serverFactoryBean.create();
    return new Runnable() {
        public void run() {
        	serverFactoryBean.destroy();
        }
    };
}
 
Example 3
Source File: RountripTest.java    From cxf with Apache License 2.0 6 votes vote down vote up
@Test
public void testOneWay() throws Exception {
    ServerFactoryBean svrBean = new ServerFactoryBean();
    svrBean.setAddress("http://localhost/Hello2");
    svrBean.setTransportId("http://schemas.xmlsoap.org/soap/http");
    svrBean.setServiceBean(new GreeterImplDoc());
    svrBean.setServiceClass(Greeter.class);
    svrBean.setEndpointName(new QName("http://apache.org/hello_world_doc_lit",
                                    "SoapPort"));
    svrBean.setServiceName(new QName("http://apache.org/hello_world_doc_lit",
                                     "SOAPService"));
    svrBean.setWsdlLocation("testutils/hello_world_doc_lit.wsdl");
    svrBean.setBus(getBus());

    svrBean.create();
}
 
Example 4
Source File: WebServiceProtocol.java    From dubbox with Apache License 2.0 6 votes vote down vote up
protected <T> Runnable doExport(T impl, Class<T> type, URL url) throws RpcException {
	String addr = url.getIp() + ":" + url.getPort();
    HttpServer httpServer = serverMap.get(addr);
    if (httpServer == null) {
        httpServer = httpBinder.bind(url, new WebServiceHandler());
        serverMap.put(addr, httpServer);
    }
    final ServerFactoryBean serverFactoryBean = new ServerFactoryBean();
    serverFactoryBean.setAddress(url.getAbsolutePath());
	serverFactoryBean.setServiceClass(type);
	serverFactoryBean.setServiceBean(impl);
	serverFactoryBean.setBus(bus);
    serverFactoryBean.setDestinationFactory(transportFactory);
	serverFactoryBean.create();
    return new Runnable() {
        public void run() {
        	serverFactoryBean.destroy();
        }
    };
}
 
Example 5
Source File: RountripTest.java    From cxf with Apache License 2.0 6 votes vote down vote up
@Test
public void testServerFactoryBean() throws Exception {
    ServerFactoryBean svrBean = new ServerFactoryBean();
    svrBean.setAddress("http://localhost/Hello");
    svrBean.setTransportId("http://schemas.xmlsoap.org/soap/http");
    svrBean.setServiceBean(new HelloServiceImpl());
    svrBean.setServiceClass(HelloService.class);
    svrBean.setBus(getBus());

    svrBean.create();

    ClientProxyFactoryBean proxyFactory = new ClientProxyFactoryBean();
    ClientFactoryBean clientBean = proxyFactory.getClientFactoryBean();
    clientBean.setAddress("http://localhost/Hello");
    clientBean.setTransportId("http://schemas.xmlsoap.org/soap/http");
    clientBean.setServiceClass(HelloService.class);
    clientBean.setBus(getBus());

    HelloService client = (HelloService) proxyFactory.create();

    assertEquals("hello", client.sayHello());
    assertEquals("hello", client.echo("hello"));
}
 
Example 6
Source File: StaxDatabindingTest.java    From cxf with Apache License 2.0 6 votes vote down vote up
@Test
public void testCopy() throws Exception {
    String address = "local://foo";

    ServerFactoryBean sf = new ServerFactoryBean();
    sf.setServiceBean(new CopyService());
    sf.setBus(getBus());
    sf.setTransportId(LocalTransportFactory.TRANSPORT_ID);
    sf.setAddress(address);
    sf.setDataBinding(new StaxDataBinding());
    sf.getFeatures().add(new StaxDataBindingFeature());
    sf.create().start();

    Node res = invoke(address, LocalTransportFactory.TRANSPORT_ID, "req.xml");

    //DOMUtils.writeXml(res, System.out);
    addNamespace("a", "http://stax.service.cxf.apache.org/");
    assertValid("//a:bleh", res);
}
 
Example 7
Source File: StaxDatabindingTest.java    From cxf with Apache License 2.0 6 votes vote down vote up
@Test
public void testCallback() throws Exception {
    String address = "local://foo";

    ServerFactoryBean sf = new ServerFactoryBean();
    sf.setServiceBean(new CallbackService());
    sf.setTransportId(LocalTransportFactory.TRANSPORT_ID);
    sf.setAddress(address);
    sf.setDataBinding(new StaxDataBinding());
    sf.getFeatures().add(new StaxDataBindingFeature());
    sf.setBus(getBus());
    sf.create();

    Node res = invoke(address, LocalTransportFactory.TRANSPORT_ID, "req.xml");

    assertValid("//bleh", res);
}
 
Example 8
Source File: StudentTest.java    From cxf with Apache License 2.0 6 votes vote down vote up
@Test
public void testMapMap() throws Exception {

    ServerFactoryBean sf = new ServerFactoryBean();
    sf.setServiceClass(StudentServiceDocLiteral.class);
    sf.setServiceBean(new StudentServiceDocLiteralImpl());
    sf.setAddress("local://StudentServiceDocLiteral");
    setupAegis(sf);
    Server server = sf.create();
    server.start();

    ClientProxyFactoryBean proxyFac = new ClientProxyFactoryBean();
    proxyFac.setAddress("local://StudentServiceDocLiteral");
    proxyFac.setBus(getBus());
    setupAegis(proxyFac.getClientFactoryBean());
    //CHECKSTYLE:OFF
    HashMap<String, Student> mss = new HashMap<>();
    mss.put("Alice", new Student());
    HashMap<String, HashMap<String, Student>> mmss = new HashMap<>();
    mmss.put("Bob", mss);

    StudentServiceDocLiteral clientInterface = proxyFac.create(StudentServiceDocLiteral.class);
    clientInterface.takeMapMap(mmss);
    //CHECKSTYLE:ON
}
 
Example 9
Source File: FlatArrayTest.java    From cxf with Apache License 2.0 5 votes vote down vote up
@Before
public void setUp() throws Exception {
    super.setUp();
    service = new FlatArrayService();

    ServerFactoryBean sf = new ServerFactoryBean();
    // use full parameter names.
    sf.setServiceClass(FlatArrayServiceInterface.class);
    sf.setServiceBean(service);
    sf.setAddress("local://FlatArray");
    sf.setDataBinding(new AegisDatabinding());
    sf.create();

    arrayWsdlDoc = getWSDLDocument("FlatArrayServiceInterface");
}
 
Example 10
Source File: CodeFirstWSDLTest.java    From cxf with Apache License 2.0 5 votes vote down vote up
private Definition createService(Class<?> clazz) throws Exception {

        JaxWsImplementorInfo info = new JaxWsImplementorInfo(clazz);
        ReflectionServiceFactoryBean bean = new JaxWsServiceFactoryBean(info);

        Bus bus = getBus();
        bean.setBus(bus);

        Service service = bean.create();

        InterfaceInfo i = service.getServiceInfos().get(0).getInterface();
        assertEquals(5, i.getOperations().size());

        ServerFactoryBean svrFactory = new ServerFactoryBean();
        svrFactory.setBus(bus);
        svrFactory.setServiceFactory(bean);
        svrFactory.setServiceBean(clazz.newInstance());
        svrFactory.setAddress(address);
        svrFactory.create();

        Collection<BindingInfo> bindings = service.getServiceInfos().get(0).getBindings();
        assertEquals(1, bindings.size());

        ServiceWSDLBuilder wsdlBuilder =
            new ServiceWSDLBuilder(bus, service.getServiceInfos().get(0));
        return wsdlBuilder.build();
    }
 
Example 11
Source File: ServerFactoryTest.java    From cxf with Apache License 2.0 5 votes vote down vote up
@Test
public void testCXF1758() throws Exception {
    ServerFactoryBean svrBean = new ServerFactoryBean();
    svrBean.setAddress("http://localhost/Generics");
    svrBean.setServiceBean(new TestServiceImpl<String>() { });
    svrBean.setBus(getBus());
    ServerImpl server = (ServerImpl)svrBean.create();
    //XMLUtils.printDOM(getWSDLDocument(server));
    assertValid("//xsd:schema/xsd:complexType[@name='open']/xsd:sequence/"
                + "xsd:element[@type='xsd:string']",
                getWSDLDocument(server));
}
 
Example 12
Source File: GenericAegisTest.java    From cxf with Apache License 2.0 5 votes vote down vote up
@Test
public void testGenerateJavascript() throws Exception {
 // Create our service implementation
    GenericGenericClass<String> impl = new GenericGenericClass<>();

    // Create our Server
    ServerFactoryBean svrFactory = new ServerFactoryBean();
    // we sure can't get a .class for the interface, can we?
    svrFactory.setServiceClass(impl.getClass());
    svrFactory.setAddress("http://localhost:" + PORT + "/aegisgeneric");
    svrFactory.setServiceBean(impl);
    Server server = svrFactory.create();
    ServiceInfo serviceInfo = ((EndpointImpl)server.getEndpoint()).getEndpointInfo().getService();
    Collection<SchemaInfo> schemata = serviceInfo.getSchemas();
    BasicNameManager nameManager = BasicNameManager.newNameManager(serviceInfo);
    NamespacePrefixAccumulator prefixManager = new NamespacePrefixAccumulator(serviceInfo
        .getXmlSchemaCollection());
    for (SchemaInfo schema : schemata) {
        SchemaJavascriptBuilder builder = new SchemaJavascriptBuilder(serviceInfo
            .getXmlSchemaCollection(), prefixManager, nameManager);
        String allThatJavascript = builder.generateCodeForSchema(schema.getSchema());
        assertNotNull(allThatJavascript);
    }

    ServiceJavascriptBuilder serviceBuilder = new ServiceJavascriptBuilder(serviceInfo, null,
                                                                           prefixManager, nameManager);
    serviceBuilder.walk();
    String serviceJavascript = serviceBuilder.getCode();
    assertNotNull(serviceJavascript);

}
 
Example 13
Source File: AbstractAegisTest.java    From cxf with Apache License 2.0 5 votes vote down vote up
protected ServerFactoryBean createServiceFactory(Class<?> serviceClass,
                                                 Object serviceBean, String address,
                                                 QName name, AegisDatabinding binding) {
    ServerFactoryBean sf = new ServerFactoryBean();
    sf.setServiceClass(serviceClass);
    if (serviceBean != null) {
        sf.setServiceBean(serviceBean);
    }
    sf.getServiceFactory().setServiceName(name);
    sf.setAddress("local://" + address);
    setupAegis(sf, binding);
    return sf;
}
 
Example 14
Source File: SimpleFrontendTest.java    From cxf with Apache License 2.0 5 votes vote down vote up
@BeforeClass
public static void createServers() throws Exception {
    bus = BusFactory.getDefaultBus();
    ServerFactoryBean sf = new ServerFactoryBean();
    sf.setServiceBean(new WSSimpleImpl());
    sf.setAddress(add11);
    sf.setBus(bus);
    sf.create();


}
 
Example 15
Source File: Server.java    From cxf with Apache License 2.0 5 votes vote down vote up
protected Server() throws Exception {
    HelloWorldImpl helloworldImpl = new HelloWorldImpl();
    ServerFactoryBean svrFactory = new JaxWsServerFactoryBean();
    svrFactory.setServiceClass(HelloWorld.class);
    svrFactory.setAddress("http://localhost:9000/Hello");
    svrFactory.setServiceBean(helloworldImpl);
    svrFactory.create();
}
 
Example 16
Source File: Server.java    From cxf with Apache License 2.0 5 votes vote down vote up
public static void startServer() throws Exception {
    HelloWorldImpl helloworldImpl = new HelloWorldImpl();
    ServerFactoryBean svrFactory = new ServerFactoryBean();
    svrFactory.setServiceClass(HelloWorld.class);
    svrFactory.setAddress("http://localhost:9000/Hello");
    svrFactory.setServiceBean(helloworldImpl);
    svrFactory.getServiceFactory().setDataBinding(new AegisDatabinding());
    svrFactory.create();
}
 
Example 17
Source File: ServerFactoryTest.java    From cxf with Apache License 2.0 5 votes vote down vote up
@Test
public void testSetDF() throws Exception {
    ServerFactoryBean svrBean = new ServerFactoryBean();
    svrBean.setAddress("http://localhost/Hello");
    svrBean.setServiceClass(HelloService.class);
    svrBean.setServiceBean(new HelloServiceImpl());
    svrBean.setBus(getBus());
    svrBean.setDestinationFactory(new CustomDestinationFactory());

    ServerImpl server = (ServerImpl)svrBean.create();
    assertTrue(server.getDestination() instanceof CustomDestination);
}
 
Example 18
Source File: HeaderTest.java    From cxf with Apache License 2.0 4 votes vote down vote up
@Test
    public void testInvocation() throws Exception {
        JaxWsServiceFactoryBean bean = new JaxWsServiceFactoryBean();

        Bus bus = getBus();
        bean.setBus(bus);
        bean.setServiceClass(TestHeaderImpl.class);

        Service service = bean.create();

        OperationInfo op = service.getServiceInfos().get(0).getInterface().getOperation(
            new QName(service.getName().getNamespaceURI(), "testHeader5"));
        assertNotNull(op);
        List<MessagePartInfo> parts = op.getInput().getMessageParts();
        assertEquals(1, parts.size());

        MessagePartInfo part = parts.get(0);
        assertNotNull(part.getTypeClass());
        assertEquals(TestHeader5.class, part.getTypeClass());

        parts = op.getOutput().getMessageParts();
        assertEquals(2, parts.size());

        part = parts.get(1);
        assertNotNull(part.getTypeClass());
        assertEquals(TestHeader5ResponseBody.class, part.getTypeClass());

        part = parts.get(0);
        assertNotNull(part.getTypeClass());
        assertEquals(TestHeader5.class, part.getTypeClass());

//        part = parts.get(1);
//        assertNotNull(part.getTypeClass());

        ServerFactoryBean svr = new ServerFactoryBean();
        svr.setBus(bus);
        svr.setServiceFactory(bean);
        svr.setServiceBean(new TestHeaderImpl());
        svr.setAddress("http://localhost:9104/SoapHeaderContext/SoapHeaderPort");
        svr.setBindingConfig(new JaxWsSoapBindingConfiguration(bean));


        svr.create();

        Node response = invoke("http://localhost:9104/SoapHeaderContext/SoapHeaderPort",
                               LocalTransportFactory.TRANSPORT_ID,
                               "testHeader5.xml");

        assertNotNull(response);
        assertNoFault(response);

        addNamespace("t", "http://apache.org/header_test/types");
        assertValid("//s:Header/t:testHeader5", response);
    }
 
Example 19
Source File: ReflectionServiceFactoryTest.java    From cxf with Apache License 2.0 4 votes vote down vote up
@Test
public void testServerFactoryBean() throws Exception {
    Service service = createService(true);
    assertEquals("test", service.get("test"));

    ServerFactoryBean svrBean = new ServerFactoryBean();
    svrBean.setAddress("http://localhost/Hello");
    svrBean.setServiceFactory(serviceFactory);
    svrBean.setServiceBean(new HelloServiceImpl());
    svrBean.setBus(getBus());

    Map<String, Object> props = new HashMap<>();
    props.put("test", "test");
    serviceFactory.setProperties(props);
    svrBean.setProperties(props);

    Server server = svrBean.create();
    assertNotNull(server);
    Map<QName, Endpoint> eps = service.getEndpoints();
    assertEquals(1, eps.size());

    Endpoint ep = eps.values().iterator().next();
    EndpointInfo endpointInfo = ep.getEndpointInfo();

    assertEquals("test", ep.get("test"));

    BindingInfo b = endpointInfo.getService().getBindings().iterator().next();

    assertTrue(b instanceof SoapBindingInfo);

    SoapBindingInfo sb = (SoapBindingInfo) b;
    assertEquals("HelloServiceSoapBinding", b.getName().getLocalPart());
    assertEquals("document", sb.getStyle());

    assertEquals(4, b.getOperations().size());

    BindingOperationInfo bop = b.getOperations().iterator().next();
    SoapOperationInfo sop = bop.getExtensor(SoapOperationInfo.class);
    assertNotNull(sop);
    assertEquals("", sop.getAction());
    assertEquals("document", sop.getStyle());
}
 
Example 20
Source File: JAXWSExporter.java    From fuchsia with Apache License 2.0 2 votes vote down vote up
@Override
public void useExportDeclaration(ExportDeclaration exportDeclaration) throws BinderException {

    LOG.info("exporting {}", exportDeclaration.getMetadata());

    JAXWSExportDeclarationWrapper pojo = JAXWSExportDeclarationWrapper.create(exportDeclaration);

    try {

        ServerFactoryBean srvFactory = new ServerFactoryBean();

        Class ref = FuchsiaUtils.loadClass(this.context, pojo.getClazz());

        srvFactory.setServiceClass(ref);

        srvFactory.setBus(cxfbus);

        ServiceReference[] jaxWsReferences = context.getAllServiceReferences(pojo.getClazz(), pojo.getFilter());

        if (jaxWsReferences == null) {
            LOG.warn("instance not found to be exported, ignoring exportation request, filter:" + pojo.getFilter());
            return;
        }

        Object object = context.getService(jaxWsReferences[0]);

        srvFactory.setServiceBean(object);

        srvFactory.setAddress(pojo.getWebcontext());

        org.apache.cxf.endpoint.Server endpoint = srvFactory.create();

        exportDeclaration.handle(serviceReference);

        exportedDeclaration.put(pojo.getWebcontext(), endpoint);

        srvFactory.getServer().start();

        LOG.info("Pushing CXF endpoint: {}", endpoint.getEndpoint().getEndpointInfo().getAddress());

    } catch (Exception e) {
        LOG.error("Failed exporting in CXF", e);
        throw new BinderException(e);
    }
}