我看到很多人在这里提出类似的问题,但他们的解决方案都不适合我。我试图通过eclipse和tomcat创建一个REST服务,但我一直在获得404页面。
我的Java类:
package com.audiencescience.rtbtools.requestvalidator.servlet;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@Path("/bidChecker")
public class BidCheckerRESTService {
@GET
@Produces(MediaType.TEXT_HTML)
public Response testGet() {
return Response.status(200).entity("<html><head></head><body>Hello world</body></html>").build();
}
}
这是我的web.xml:
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Restful Web Application</display-name>
<servlet>
<servlet-name>jersey-serlvet</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.audiencescience.rtbtools.requestvalidator.servlet</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
网址:
http://localhost:8080/BidCheckerWebService/bidchecker
返回404.我正在使用jersey-bundle 1.18
答案 0 :(得分:1)
根据url-pattern
中的web.xml
设置,您的网络服务网址应为http://localhost:8080/BidCheckerWebService/rest/bidChecker
,即您需要在网址中加入/rest/
,并且您的上下文应该匹配您@Path
中指定的内容。
答案 1 :(得分:0)
您的其余servlet已映射到/rest/*
,因此您的网址应如下所示:
http://localhost:8080/BidCheckerWebService/rest/bidchecker
答案 2 :(得分:0)
您也可以将当前网址的网址格式更改为/ *,而不是路径中的/ rest,如上面的答案所示。