大家好我用jersey为RESTful Web服务实现了tutorial。
我的项目设置如下:
文件夹结构:
Web.xml中
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/javaee" version="3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>RestfulContainer</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>com.mcnz.ws</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>RestfulContainer</servlet-name>
<url-pattern>/resources/*</url-pattern>
</servlet-mapping>
</web-app>
HelloWorldResource.java
package com.mcnz.ws;
import javax.ws.rs.*;
@Path("helloworld")
public class HelloWorldResource {
@GET
@Produces("text/plain")
public String getMessage() {
return "Rest Never Sleeps";
}
}
我建立了战争,所有似乎都在运行,但在部署到tomcat 7后,网址
http://localhost:8080/restful/resources/helloworld
没有回复
我在这里 .war答案 0 :(得分:1)
我认为您的项目结构很混乱。为什么您的REST资源位于WEB-INF
文件夹中?您应该将它们放在src/main/java
中。我建议您参加第一个REST项目的this教程。再次查看您的文件夹结构,我建议使用Maven进行依赖关系管理。您可以找到一些教程here。
答案 1 :(得分:0)
你有一个类级别的路径,尝试将它放在方法级别(在@GET语句之后)
您也可以在@GET之后留下第一个和另一个
这是我的一个样本
@Path("/user/")
public class UserResource {
// Method for Registering a User, receives and replies a JSON
@POST
@Path("/register")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public StatusResult register(UserRegistrationRequest urr) {
//Calls the controller to register the producer, and returns result
StatusResult result = UserController.register(urr);
return result;
}
你会把它称为localhost:8080 / restful / resources / user / register
答案 2 :(得分:0)