【问题标题】:Restful site broke after upgrading resteasy-jaxrs to the lastest version将 resteasy-jaxrs 升级到最新版本后,Restful 站点损坏
【发布时间】:2014-08-19 23:19:39
【问题描述】:

我正在阅读有关 RestEasy 的教程示例:

http://www.mkyong.com/webservices/jax-rs/resteasy-hello-world-example/

我下载了他们的代码并进行了修改,以便可以将其部署到 tomcat 7 和 java 1.7。

如果我保留网站指定的 pom.xml,

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <version>2.2.1.GA</version>
    </dependency>

然后一切似乎都很好,可以通过以下方式访问:

    http://localhost:8080/RESTfulExample/rest/message/hello

但是,如果我将版本级别提高到 3.0.8.Final 或“RELEASE”,

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <version>3.0.8.Final</version>
    </dependency>

然后我无法通过上述 URL 访问它。相反,我在 localhost_access_log.txt 中收到此消息

127.0.0.1 - - [19/Aug/2014:16:02:55 -0700] "GET /RESTfulExample/rest/message/hello HTTP/1.1" 404 -

问题:如果我真的想使用 RESTeasy 3.0.8.Final,有谁知道如何让 pom.xml 工作?我是 Rest 新手。

提前致谢。

【问题讨论】:

    标签: maven resteasy


    【解决方案1】:

    作为documentation describes,您可以通过添加此依赖项在独立的 Servlet 3.0 兼容容器中初始化 RESTeasy:

    <dependency>
      <groupId>org.jboss.resteasy</groupId>
      <artifactId>resteasy-servlet-initializer</artifactId>
      <version>3.0.8.Final</version>
    </dependency>
    

    您还应该使用正确的 Servlet 版本更新 web.xml。大多数旧的配置内容都可以删除,因此您最终会得到:

    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
          version="3.0"> 
        <display-name>Restful Web Application</display-name>
    </web-app>
    

    最后要做的是告诉 RESTeasy 你想在哪条路径上映射你的应用程序,方法是在 MessageApplication 类中添加javax.ws.rs.ApplicationPath

    @ApplicationPath("/rest")
    public class MessageApplication extends Application { 
        ...
    }
    

    【讨论】:

    • [ERROR] \code3\rest-mkyong\RESTfulExample\src\main\java\com\mkyong\app\MessageApplication.java:[10,1] 错误:找不到符号,特别是,它指向@ApplicationPath("/rest")
    • import javax.ws.rs.ApplicationPath了吗?
    • Lefloh:当库从 2.2.1.GA 升级到版本 3+ 时,您是如何知道如何解决上述问题的?
    猜你喜欢
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    • 2022-01-05
    • 1970-01-01
    相关资源
    最近更新 更多