是否可以通过“使用没有Spring且没有web.xml 文件的servlet传输”来创建带有apache cxf(soap / rest)的web服务?
答案 0 :(得分:1)
不可能 该服务将需要Web部署描述符。
你可以扩展
REST的
和
SOAP的Apache CXF中的Web服务以避免使用Spring,但是您需要在web.xml中注册它们。
您必须使用Spring配置或web.xml。
参考:Apache CXF - How to register a SOAP service without Spring?
答案 1 :(得分:0)
有可能。我花了很多工作来解决我自己的项目,并认为我会分享。
在我的上下文中,我们使用OSGi HTTP服务使用Jersey Servlet容器发布JAX-RS资源,我想用CXF为JAX-WS资源做同样的事情。
扩展CXFNonSpringServlet的类应包含以下内容:
private Object obj; // JAX-WS resource singleton
@Override
public void loadBus(ServletConfig conf)
{
super.loadBus(conf);
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
factory.setBus(getBus());
factory.setAddress("/some/path");
factory.setServiceBean(obj);
Server cxfServer = factory.create();
}
请注意,您可以在单个servlet中加载尽可能多的资源。另请注意,factory.setAddress()中的路径将附加到注册servlet的路径。
另请注意,我使用的是单例模式,而不是处理程序类模式。我确信这可以简单地修改以适应其他范例。