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服务器)
让我知道