找不到简单的泽西Hello World 404资源

时间:2014-08-12 19:35:44

标签: java eclipse rest tomcat jersey-2.0

这是我的项目文件夹

http://postimg.org/image/huftiysmn/

这是Hello.java代码:

package ale;

import javax.ws.rs.GET;
import javax.ws.rs.Path;

@Path("/hello")
public class Hello {

    @GET
    public String hello(){
        return "hello world";
    }
}

和web.xml文件:

    <?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="3.1"
 xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
 <display-name>Ciao</display-name>
 <servlet>
  <display-name>Rest Servlet</display-name>
  <servlet-name>RestServlet</servlet-name>
  <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
  <init-param>
   <param-name>com.sun.jersey.config.property.packages</param-name>
   <param-value>ale</param-value>
  </init-param>
 </servlet>
 <servlet-mapping>
  <servlet-name>RestServlet</servlet-name>
  <url-pattern>/rest/*</url-pattern>
 </servlet-mapping>

</web-app>

当我从URL上的eclipse启动tomcat时:localhost:8080 / Ciao / rest / hello,我得到了#34; HTTP状态404 - 找不到&#34;

我从来没有写过休息应用程序所以它可能是一些愚蠢但我无法弄清楚什么是错的,任何想法?

3 个答案:

答案 0 :(得分:0)

您需要创建@XmlRootElement

尝试这样的事情

类hi.java

@XmlRootElement
public class hello {

    private String hi;

    public String getHi() {
        return hi;
    }
    public void setHi(String hi) {
        this.hi = hi;
    }

}

类ale.java

package ale;

import javax.ws.rs.GET;
import javax.ws.rs.Path;

@Path("/hello")
public class Hello {

    @GET
    public String hello(){
        return getHi;
    }
}

答案 1 :(得分:0)

我有点迟了但这里是我找到的解决方案:我实际上解决了将我的项目转换为maven项目的问题。我认为问题是我的库中的一些罐子之间的某些版本不匹配。在库修复项目后,@ keyser在路径中使用或不使用斜杠

答案 2 :(得分:0)

将pom.xml中的jersey依赖项版本更改为1.19.4文件like this