RESTEasy - @Path需要完整路径?
我正在搞砸JAX-RS,并制作了一个应用程序,该应用程序调用生成JSON的REST服务。我尝试了泽西岛,一切顺利,但我不得不切换到RESTEasy,因为我的应用程序需要用JDK5构建。我将我的网络.xml更改为如下所示:
<web-app>
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<listener-class>
org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
</listener-class>
</listener>
<servlet>
<servlet-name>RESTEasy</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RESTEasy</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<!-- ... -->
</web-app>
所以我希望每个以/rest开头的URL都由RESTEasy处理。我的服务如下:
@Path("/services")
public class MyRESTServices {
@GET
@Path("service1")
@Produces(MediaType.APPLICATION_JSON)
public Object service1(Blah blah) {
}
}
使用泽西岛可以正常工作,http://localhost/MyContext/rest/services/service1 绑定到我的service1()方法。但是,当我切换到RESTEasy时,我有一个404:
HTTP 状态 404 - 找不到完整路径的相对资源:/rest/services/service1:http://localhost/MyContext/rest/services/service1
这意味着 RESTEasy 处理了请求,但找不到绑定到此 URL 的任何服务。
不过,在我的课堂上,改为工作。你知道我为什么会有这种奇怪的行为吗?我阅读的所有教程/文档都只提到了相对路径,不包括/rest前缀...@Path("/services")
@Path("/rest/services")