我尝试使用非Spring servlet从CXF restful服务迁移到CXFServlet。我使用的是CXF 2.7和Spring 4.1。现有系统非常庞大,因此我希望尽量减少对各项服务的更改。
在Web.XML中我添加了:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/ApplicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
和
<servlet>
<servlet-name>cxf-servlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.myapp.MyApplication</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
MyApplication中添加了各个服务,如下所示:
@Path("service")
public class MyService
使用方法的通常注释。结果是一切都编译并运行没有错误,但是根本找不到宁静的服务。我已经看过将所有服务放在ApplicationContext.xml中的bean标签中的示例,或者为所有服务添加注释的示例,但我觉得有一种方法可以在java中注册服务而无需通过这一点。