获取404错误以运行Jersey REST

时间:2012-07-26 14:31:57

标签: eclipse maven jersey

我正在尝试运行我的第一个HelloWorld Jersey项目,阅读一堆教程,我认为理论上它应该可以工作但当然我做错了,页面给了我404错误。 这就是我所拥有的:

我开始使用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>

然后我还添加了一个非常小的类来获得一些Jersey注释:

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";
    }
}

我还在web.XML文件中注册了Jersey:

  <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>

注意:那里已经创建了一些,我还没有碰过它们。他们还在那里。

因此,使用此配置,我执行了Run On Server并转到

  

http://localhost:8080/JerseyREST/rest/hello

但是得到了令人讨厌的HTTP状态404 - / JerseyREST / jerseyrest / rest / hello错误。我无法弄清楚我做错了什么。 我看过的任何建议或地点?

非常感谢。

2 个答案:

答案 0 :(得分:1)

我按照此链接实施了我的第一个Jersey Web服务:REST in Java 我在Tomcat v7.0上运行它,它工作正常。你在Tomcat上试过吗?如果没有,我建议你尝试一下。有时我发生了永久性的404错误。为了修复错误,我删除了Tomcat并创建了一个新的服务器向导,然后它工作正常。

正如@Tom所说,它可能与"application/plain"有关。请改用MediaType.TEXT_PLAIN

您需要在/ WEB-INF / lib /下添加这些jar文件: asm-3.1jackson-core-asl-1.9.2jackson-jaxrs-1.9.2jackson-mapper-asl-1.9.2jackson-xc-1.9.2jersey-client-1.11jersey-core-1.11jersey-json-1.11,{{ 1}},jersey-server-1.11jersey-servlet-1.11jettison-1.1

答案 1 :(得分:0)

 <param-name>com.sun.jersey.config.property.packages</param-name>
  <param-value>JerseyREST</param-value>

param值应指向您创建类的文件夹。