JAX-RS 1.12 で開発され、Tomcat 7 で実行されている既存の Web アプリケーションをアップグレードするプロジェクトに取り組んでいます。現在、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 マッピングを指定していないようです。これについてあなたの考えを共有してください