内置在Apache CXF中的HTTP服务器

时间:2014-01-04 02:02:51

标签: rest jersey cxf httpserver

Apache CXF中是否有内置的HTTP服务器,如Jersey的“HttpServerFactory”? 我尝试阅读CXF文档,但找不到类似的东西。

1 个答案:

答案 0 :(得分:4)

是的,有。

如果您希望在内置服务器上部署JAX-RS服务,请使用org.apache.cxf.jaxrs.JAXRSServerFactoryBean。示例用法(取自CXF samples):

JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
sf.setResourceClasses(CustomerService.class);
sf.setResourceProvider(CustomerService.class, 
    new SingletonResourceProvider(new CustomerService()));
sf.setAddress("http://localhost:9000/");

sf.create();

如果您希望在内置服务器上部署JAX-WS服务,则可以使用javax.xml.ws.Endpoint.publish(..)。示例代码(再次从CXF Sample复制):

    HelloWorldImpl implementor = new HelloWorldImpl();
    String address = "http://localhost:9000/helloWorld";
    Endpoint.publish(address, implementor);

JAX-WS和JAX-RS都需要将org.apache.cxf:cxf-rt-transports-http-jetty添加到类路径。

我真的建议你看一下CXF samples。有时它们是不可或缺的。