404访问Tomcat 7中的Jersey应用程序时

我是Web开发的新手,我正在努力创建一个简单的restWeb服务,使用jersey,打包为独立的war文件,部署在tomcat 7上。

我已经按照本教程创建了简单的hello world restful web服务。 我使用intelij来创建war文件(war文件和它的爆炸版本)并将它们部署在tomcat \ webapps文件夹中。

启动tomcat时,我无法访问url( http://localhost:8080/rest/hello ) – 获得404。

查看tomcat的日志,我找不到任何exception或错误,除了下一组行:

 INFO: Scanning for root resource and provider classes in the packages: sample εαΘ 30, 2013 11:24:38 PM com.sun.jersey.api.core.ScanningResourceConfig logClasses INFO: Root resource classes found: class sample.Hello εαΘ 30, 2013 11:24:38 PM com.sun.jersey.api.core.ScanningResourceConfig init INFO: No provider classes found. 

我已经搜索了很多,并试图遵循所有解决方案,但没有任何效果。

由于我的新生,我觉得我错过了一些非常基本的东西。 任何想法搜索什么? 我错过了什么? 这是一个简单的你好世界的应用程序,我很兴奋和沮丧……

Java类

 package sample; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("hello") public class Hello { // This method is called if TEXT_PLAIN is requested @GET @Produces(MediaType.TEXT_PLAIN) public String sayHelloInPlainText() { return "Hello world!"; } // This method is called if HTML is requested @GET @Produces(MediaType.TEXT_HTML) public String sayHelloInHtml() { return " " + "" + "Hello world!" + "" + "

" + "Hello world!" + "

" + " "; } }

web.xml中

    rest  Jersey REST Service com.sun.jersey.spi.container.servlet.ServletContainer  com.sun.jersey.config.property.packages sample  1   Jersey REST Service /*   

类似于这个问题:“ 找不到提供程序类:运行Jersey REST示例应用程序时 ”。

消息“找不到提供程序类”很好,无需担心。 要使URL http://localhost:8080/rest/hello正常工作,您的WAR文件需要被称为rest.war 。 然后rest成为上下文根。 您在项目注释中定义的所有路径都与上下文根相关

如果你在eclipse中调用你的项目:rest,那么你应该得到正确的信息:“Hello world!” 来自tomcat的url:

 http://localhost:8080/rest/hello. 

例如,如果您调用了您的项目:MyHello,使用您发布的代码,正确的URL应为:

 http://localhost:8080/MyHello/hello 

(原因是Eclipse默认创建一个名为项目名称的war并将其发布到您在配置中添加的tomcat服务器)

让我知道