泽西路径分辨率

时间:2012-06-28 06:05:39

标签: java web-services java-ee jersey

这是我的泽西服务,我使用网址

访问该服务
http://host:port/contextroot/welcome/data

当我将Jersey servlet映射到/ welcome / *时,我收到404错误。但是当我在web.xml中说/ *时,我的要求很好。我不希望我的webapp中的所有请求都通过泽西。如何使用/ welcome限制只有请求的路径?

@Path("/welcome")
public class WelcomeRestJson {

    @POST
    @Path("/data")
    @Produces("text/plain")
    @Consumes("application/json")

    public String processPostData(MyObject myObject) {
        System.out.println("Inside processPostData");
        return "success";
    }

}

2 个答案:

答案 0 :(得分:2)

将servlet映射到/ welcome / *只需将根资源(WelcomeRestJson)的路径模板从@Path(“/ welcome”)更改为@Path(“/”) - 这样就是相同的URL({{ 1}})将像以前一样工作。

答案 1 :(得分:0)

在web.xml中映射到/ welcome / *:

<servlet>
    <servlet-name>ServletAdaptor</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>ServletAdaptor</servlet-name>
    <url-pattern>/welcome/*</url-pattern>
</servlet-mapping>

然后,您可以在/ welcome下调用您的Web服务,并在不同的路径上调用其余的请求。