不使用 Spring 的带有 CXF 的 JAX-RS
JAX-RS with CXF without using Spring
我想 运行 一个使用 CXF 但不使用 spring 的简单 Web 应用程序。我能够使用 Jersey 实现 Servlet,现在我正在尝试使用 CXF。以下是我的 web.xml.
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Output Socket</display-name>
<servlet>
<servlet-name>JAXServlet</servlet-name>
<servlet-class>
org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet
</servlet-class>
<init-param>
<param-name>jaxrs.serviceClasses</param-name>
<param-value>org.myCompany.servlet</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JAXServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
并且在 pom.xml 我有以下依赖项。
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>2.6.1</version>
</dependency>
我不确定这个配置。
<init-param>
<param-name>jaxrs.serviceClasses</param-name>
<param-value>org.myCompany.servlet</param-value>
</init-param>
在我的 tomcat 中部署 war 文件后,出现以下异常。
java.lang.ClassNotFoundException: org.myCompany.servlet
我是不是做错了什么。任何帮助将不胜感激
您确实需要以下配置:
<init-param>
<param-name>jaxrs.serviceClasses</param-name>
<param-value>org.myCompany.servlet</param-value>
</init-param>
这是您必须提及您的服务的地方 classes。并且错误提示找不到 class org.myCompany.servlet。
因此,请确保您的服务 class 存在且具有正确的包和名称。
我想 运行 一个使用 CXF 但不使用 spring 的简单 Web 应用程序。我能够使用 Jersey 实现 Servlet,现在我正在尝试使用 CXF。以下是我的 web.xml.
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Output Socket</display-name>
<servlet>
<servlet-name>JAXServlet</servlet-name>
<servlet-class>
org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet
</servlet-class>
<init-param>
<param-name>jaxrs.serviceClasses</param-name>
<param-value>org.myCompany.servlet</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JAXServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
并且在 pom.xml 我有以下依赖项。
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>2.6.1</version>
</dependency>
我不确定这个配置。
<init-param>
<param-name>jaxrs.serviceClasses</param-name>
<param-value>org.myCompany.servlet</param-value>
</init-param>
在我的 tomcat 中部署 war 文件后,出现以下异常。
java.lang.ClassNotFoundException: org.myCompany.servlet
我是不是做错了什么。任何帮助将不胜感激
您确实需要以下配置:
<init-param>
<param-name>jaxrs.serviceClasses</param-name>
<param-value>org.myCompany.servlet</param-value>
</init-param>
这是您必须提及您的服务的地方 classes。并且错误提示找不到 class org.myCompany.servlet。 因此,请确保您的服务 class 存在且具有正确的包和名称。