Apache CXF中是否有内置的HTTP服务器,如Jersey的“HttpServerFactory”? 我尝试阅读CXF文档,但找不到类似的东西。
答案 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。有时它们是不可或缺的。