相关疑难解决方法(0)

RESTEasy - 需要完整路径的@Path?

我正在搞乱JAX-RS并创建了一个调用生成JSON的REST服务的应用程序.我试过Jersey,一切都很顺利,但我不得不切换到RESTEasy,因为我的应用程序需要用JDK5构建.我将web.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>
Run Code Online (Sandbox Code Playgroud)

所以我希望每个以/ rest开头的URL都由RESTEasy处理.我的服务如下:

@Path("/services")
public class MyRESTServices {

    @GET
    @Path("service1")
    @Produces(MediaType.APPLICATION_JSON)
    public Object service1(Blah blah) {

    }
}
Run Code Online (Sandbox Code Playgroud)

使用Jersey工作正常,http:// localhost/MyContext/rest/services/service1绑定到我的service1()方法.但是,当我改为RESTEasy时,我有一个404:

HTTP状态404 - 无法找到相对的资源:/ rest/services/service1 of full path:http:// localhost/MyContext/rest/services/service1

这意味着RESTEasy处理了请求但找不到绑定到此URL的任何服务.

然而,在我的课堂上,@Path("/services")改为@Path("/rest/services")工作.你知道我为什么会有这种奇怪的行为吗?我读过的所有教程/文档都只提到相对路径,不包括/ rest前缀...

java jax-rs resteasy

17
推荐指数
1
解决办法
3万
查看次数

标签 统计

java ×1

jax-rs ×1

resteasy ×1