私は、Jersey を使用して安らかな Web サービスを開発および展開しようとしています。docs.oracle.com やその他のさまざまなソースのドキュメントに従いましたが、サービスのテスト時に HTTP ステータス 404 を取得しました。
以下は私の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>Hello World</display-name>
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.rest.jersey.test</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/resources/*</url-pattern>
</servlet-mapping>
</web-app>
そして、これが私のサービスです。
package com.rest.jersey.test;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/hello")
public class HelloWorld {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String response(){
return "Hello World!";
}
}
URLにアクセスしようとすると
http://localhost:8080/TestRestWithJersey/resources/hello
HTTP ステータス 404 エラーが発生します。これに関して私を助けてください。
Eclipseのログファイルを確認したところ、これ以外には何も言われていません:
!MESSAGE [/workspace/TestRestWithJersey/WebContent/WEB-INF/web.xml] のプロジェクトが見つかりません
メッセージが理解できませんでした。これについて教えてもらえますか?
また、URLにアクセスしたときのTomcatログには次のように表示されます
SEVERE: Error loading WebappClassLoader
context: /TestRestWithJersey
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@5362ab
com.sun.jersey.spi.container.servlet.ServletContainer
java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer
jsr-311.jar とともに jersey-server.jar を追加しました
また、単一の jersey-bundle.jar で以前に試しました
問題はまだ同じです。
どんな助けでも大歓迎です。