使用tomcat和eclipse的Java RESTful Web服务提供404

时间:2014-08-06 00:14:14

标签: java eclipse rest tomcat

我看到很多人在这里提出类似的问题,但他们的解决方案都不适合我。我试图通过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

3 个答案:

答案 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,如上面的答案所示。