使用Eclipse中的Maven在Resteasy中设置GAE项目

时间:2013-09-24 21:06:19

标签: google-app-engine maven resteasy

我正在尝试学习Maven,为此我想在Eclipse 4.3中创建一个项目,目标是GAE(最新版本:1.8.4)并使用Maven进行构建/依赖管理。我想包括Resteasy和CDI,但暂时我遇到了Resteasy的问题。

我做了什么:

  • 关注this guide(没有Jersey部分)来设置Maven / Eclipse / GAE项目。我不得不将Java源代码和目标配置更改为1.7,并且效果很好。

  • 包含Resteasy:

    • 添加了以下依赖项:

      <dependency>
          <groupId>org.jboss.resteasy</groupId>
          <artifactId>resteasy-jaxrs</artifactId>
          <version>2.3.7.Final</version>
      </dependency>
      <dependency>
          <groupId>org.jboss.resteasy</groupId>
          <artifactId>resteasy-jaxb-provider</artifactId>
          <version>2.3.7.Final</version>
      </dependency>
      <dependency>
          <groupId>org.codehaus.jackson</groupId>
          <artifactId>jackson-jaxrs</artifactId>
          <version>1.9.13</version>
      </dependency>
      <dependency>
          <groupId>org.jboss.resteasy</groupId>
          <artifactId>resteasy-jackson-provider</artifactId>
          <version>2.3.7.Final</version>
      </dependency>
      
    • 已实施javax.ws.rs.core.Application

    • 以及web.xml中的以下配置:

      <servlet>
          <servlet-name>Resteasy</servlet-name>
          <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
          <init-param>
              <param-name>javax.ws.rs.Application</param-name>
              <param-value>npara.expenses.server.JaxRsApplication</param-value>
          </init-param>
      </servlet>
      <servlet-mapping>
          <servlet-name>Resteasy</servlet-name>
          <url-pattern>/api/*</url-pattern>
      </servlet-mapping>
      

运行项目时,使用Maven创建的启动配置,我得到以下异常:

java.lang.ClassNotFoundException:
    org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher

HttpServletDispatcher位于resteasy-jaxrs-2.3.7.Final.jar中,它正确放置在WEB-INF / lib中。我已经创建了一个类似的项目,使用GAE,Resteasy,CDI without Maven (手动JAR管理)和这种确切的配置,它可以很好地工作。

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

尝试使用Jersey它更容易使用。

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-core</artifactId>
    <version>1.9.1</version>
</dependency>
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-server</artifactId>
    <version>1.9.1</version>
</dependency>