我试图运行我的第一个HelloWorld Jersey项目,阅读其中的一堆教程,我认为理论上它应该可以工作,但当然我做错了那个页面给我的东西一个404错误。 这里是我的:获取404错误来运行Jersey REST
我开始在Eclise中使用DynamicWebProject并使用插件将它转换为Maven项目。而这些添加到POM文件:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.8</version>
</dependency>
</dependencies>
然后我还添加了一个非常小的类像这样有一些州注释:
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@Path("/hello")
public class HelloWorldResource {
@GET
@Produces("application/plain")
public String getMessage() {
// Forward request to service layer.
return "Hello World";
}
}
,我在网上也注册泽西这些。 XML文件:
<servlet>
<servlet-name>Jersey REST Service</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>JerseyREST</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
注意:已经有一些创建在那里,我还没有触及它们。他们仍然在那里。
所以这个配置我做了一个运行在服务器和去
http://localhost:8080/JerseyREST/rest/hello
,但得到一个讨厌的HTTP状态404 - 上/ JerseyREST/jerseyrest/REST /你好错误。我无法想象我做错了什么。 任何建议或地方,我看看?
非常感谢。
我会先转到您的服务器管理器应用程序(如果有),并查看应用程序是否已真正部署。我的另一个猜测是@Produces注释有问题。我从来没有听说过“application/plain”MIME类型。 – toniedzwiedz 2012-07-26 15:27:32
是的,它没有在Tomcat Manager中列出:( – Bohn 2012-07-26 16:07:43
然后检查你的编译输出,你的项目肯定有什么问题 – toniedzwiedz 2012-07-26 16:13:09