我正在开发项目以升级我现有的 Web 应用程序,该应用程序是在 JAX-RS 1.12 中开发并在 tomcat 7 中运行的。现在我正在将其升级到 JAX-RS2.0。在 tomcat 服务器启动期间,我的资源没有被加载?
以下是详细信息。在 JAX-RS 2.0 的 jar 下添加
jersey-client-2.0-m07-1 jersey-common-2.0-m07-1 jersey-container-servlet-2.0-m07-1 jersey-container-servlet-core-2.0-m07-1 jersey-server-2.0-m07- 1 javax.ws.rs-api-2.0-m10 osgi-resource-locator-1.0.1 javax.inject-2.1.28 javax.inject-1 hk2-utils-2.1.28 hk2-locator-2.1.28 hk2-api -2.1.28 guava-13.0 cglib-2.1.28 asm-all-repackaged-2.1.28
在 Web.xml 中
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>ConfigLiteJersey2</display-name>
<!-- Jersey Servlet to Support JAXRS Services -->
<servlet>
<servlet-name>ConfigLiteServices</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.core.Application</param-name>
<param-value>com.cisco.config.resource</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ConfigLiteServices</servlet-name>
<url-pattern>/config/*</url-pattern>
</servlet-mapping>
我的资源文件
@Path("/configset")
public class ConfigSetResource {
@POST
@Path("/id{configsetid: (/[^/]+?)?}")
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public ConfigSetResponse getConfigSet(@PathParam("configsetid") String sConfigSetId) throws Exception {
//Code
}
}
尝试使用以下 URL ipaddress:8080/ConfigLiteJersey2/config/configset/id 访问我的资源 API
获取 HTTP 状态 404 未找到。
看起来我没有在 web.xml 中给出正确的 servletclass 映射。请分享您对此的看法