将resteasy-jaxrs升级到最新版本后,休息站点坏了

时间:2014-08-19 23:19:40

标签: maven resteasy

我正在浏览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或&#34; RELEASE&#34;,

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

然后我无法通过上述网址访问它。相反,我在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的新手。

提前致谢。

1 个答案:

答案 0 :(得分: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>

最后要做的是通过将javax.ws.rs.ApplicationPath添加到MessageApplication类来告诉RESTeasy要映射应用程序的路径:

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