【发布时间】:2015-10-22 20:25:34
【问题描述】:
我基于一些示例创建了一个简单的 RESTful Web 服务并将其构建到一个 .war 文件中(项目结构在 WEB-INF 下有 web.xml),将其部署在 glassfish 上,当我尝试时出现 404 not found 错误调用它。 我包含该服务的课程是:
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
/**
* Created by Nikos Kritikos on 10/22/2015.
*/
@Path("/decks")
public class HS_Services {
@Path("sayHello/{name}")
@GET
public String doSayHello(@PathParam("name") String name) {
return "Hello there "+name;
}
}
我的 web.xml 是这样的:
<servlet>
<servlet-name>HSRestServices</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HSRestServices</servlet-name>
<url-pattern>/hsrest/*</url-pattern>
</servlet-mapping>
我尝试用http://localhost:8080/HSRestServices/hsrest/decks/sayHello/Nikos 调用它,但我从 glassfish 得到 404.. 任何帮助将不胜感激,谢谢。
【问题讨论】:
-
为什么在 URL 中使用 /HSRestServices?
-
将
@Controller添加到您的HS_Services类中,告诉 Spring 是 Web 控制器 -
因为 HSRestServices 是 servlet 的名称,也是 web 应用程序的名称。我测试了localhost:8080/hsrest/decks/sayHello/Nikos,没有工作
-
Valijon,我不用spring,为什么需要这个?