当前位置: 首页 > 面试题库 >

RESTEasy-@Path是否需要完整路径?

居和顺
2023-03-14
问题内容

我在搞弄JAX-
RS,制作了一个应用程序,该应用程序调用产生JSON的REST服务。我尝试了Jersey,一切都很好,但是由于我的应用程序需要使用JDK5进行构建,因此我不得不切换到RESTEasy。我将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>

因此,我希望每个以/ rest开头的URL都将由RESTEasy处理。我的服务如下:

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

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

    }
}

使用Jersey可以正常工作,http:// localhost / MyContext / rest / services /
service1
已绑定到我的service1()方法。但是,当我更改为RESTEasy时,我得到了404:

HTTP状态404-找不到相对资源:完整路径的/ rest / services / service1:http:// localhost /
MyContext / rest / services /
service1

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

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


问题答案:

解决方案:在您的web.xml中添加以下内容

<context-param>
    <param-name>resteasy.servlet.mapping.prefix</param-name>
    <param-value>/rest</param-value>
</context-param>

/ rest是您的开始 <url-pattern>/rest/*</url-pattern>

(来源:http
:
//docs.jboss.org/resteasy/docs/2.0.0.GA/userguide/html/Installation_Configuration.html#d0e72)



 类似资料:
  • 问题内容: 我有一个非常简单的python脚本, 应该 扫描一个文本文件,该文件包含格式为 id =’ value ‘的行并将其放入dict中。python模块称为chval.py,输入文件为in.txt。这是代码: 当我尝试运行它时,我得到: 追溯(最近一次通话): 文件“ chval.py”,第9行,位于?中。f = open(sys.argv [1],’r’)TypeError:必须为整数

  • 问题内容: 我有一个包含十个文件的文件夹,我想循环浏览。当我打印出文件名时,我的代码可以正常工作: 哪些打印: 但是,如果我尝试在循环中打开文件,则会出现IO错误: 我是否需要甚至在循环内将文件的完整路径传递给它们? 问题答案: 是的,您需要完整的路径。 是快速修复。正如注释所指出的那样,它会下降到子目录中,因此您确实需要使用当前目录的根目录,而不是用作路径联接的基础。

  • 我正在做一个Spring web。对于控制器方法,我可以使用Request estParam来指示是否需要参数。例如: 我想使用PathVariable,例如以下内容: 如何指示是否需要path变量?我需要将其设置为可选的,因为创建新对象时,在保存之前没有可用的关联ID。 谢谢你的帮助!

  • 我想知道在不运行require的情况下,节点的require将解析到什么路径。 例如 在内部node.js将查看它的PATH,弄清楚它是一个目录、一个js文件、一个json文件等。,然后加载文件。 有没有办法在不实际加载模块的情况下只处理完整解析的路径? 我正在寻找的输出是这样的 重要的部分是. js扩展名,因为节点必须完全解析路径。 注意:无法解决此问题。如果some_module实际上是一个包

  • 随着新的工具栏小部件的引入和AppCompat(android.support.v7.widget.Toolbar)版本的推出,是否还需要调用setSupportActionbar(工具栏)?或者调用setSupportActionbar有什么好处吗;现在我们可以设置标题、子标题、导航图标、导航图标单击侦听器(getSupportActionBar()。直接在工具栏上设置DisplayHomeAs

  • 我在struts2中使用jqgrid插件。我能够在浏览器中看到JSON数据,但不确定如何在网格中显示该数据(使用grid.jsp)。 以下是我正在使用的文件: 支柱。xml 网状物xml http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd“id=“WebApp\u id”版本=“3.0” JSONDataAction.java 用户ction.jav