这是我的项目文件夹
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;
我从来没有写过休息应用程序所以它可能是一些愚蠢但我无法弄清楚什么是错的,任何想法?
答案 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。