是否可以在没有 web.xml 的情况下设置 apache-cxf?
Is it possible to setup apache-cxf without web.xml?
是否可以通过 "using the servlet transport without Spring and without web.xml file" 使用 apache cxf (soap/rest) 创建网络服务?
不,这不可能。
该服务将需要 Web 部署描述符。
您可以延长
CXFNonSpringJaxrsServlet for REST
和
CXFNonSpringServlet for SOAP
Apache CXF 中的网络服务以避免使用 Spring,但随后您需要在 web.xml 中注册它们。
您必须使用 Spring 配置或 web.xml。
参考:Apache CXF - How to register a SOAP service without Spring?
有可能。我花了很多时间为我自己的项目解决这个问题,我想分享一下。
在我的上下文中,我们使用 OSGi HTTP 服务通过 Jersey Servlet 容器发布 JAX-RS 资源,我想对 JAX-WS 资源使用 CXF 做同样的事情。
您的 class 扩展 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 的路径。
另请注意,我使用的是单例模式,而不是处理程序-class 模式。我确信这可以简单地修改以适应其他范例。
是否可以通过 "using the servlet transport without Spring and without web.xml file" 使用 apache cxf (soap/rest) 创建网络服务?
不,这不可能。
该服务将需要 Web 部署描述符。
您可以延长
CXFNonSpringJaxrsServlet for REST
和
CXFNonSpringServlet for SOAP
Apache CXF 中的网络服务以避免使用 Spring,但随后您需要在 web.xml 中注册它们。
您必须使用 Spring 配置或 web.xml。
参考:Apache CXF - How to register a SOAP service without Spring?
有可能。我花了很多时间为我自己的项目解决这个问题,我想分享一下。
在我的上下文中,我们使用 OSGi HTTP 服务通过 Jersey Servlet 容器发布 JAX-RS 资源,我想对 JAX-WS 资源使用 CXF 做同样的事情。
您的 class 扩展 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 的路径。
另请注意,我使用的是单例模式,而不是处理程序-class 模式。我确信这可以简单地修改以适应其他范例。