2013-06-26 23 views
3

我用:搖籃問題 - 嘗試做一些JAX-RS 2 Jetty和RestEasy的 - ClassNotFoundException的:javax.servlet.AsyncListener

  • 碼頭8.1.11
  • RestEasy的3.0.1.Final
  • 搖籃1.6 - jettyRun任務 - 在Windows上運行7 - >這是罪魁禍首

更新:如果我部署我直接在碼頭的戰爭,它工作正常,但如果我開始與gradle這個jettyRun任務,它失敗。所以它關係到搖籃

我得到這個堆棧:

java.lang.NoClassDefFoundError: javax/servlet/AsyncListener 
    at org.jboss.resteasy.plugins.server.servlet.Servlet3AsyncHttpRequest.<init>(Servlet3AsyncHttpRequest.java:38) 
    at org.jboss.resteasy.plugins.server.servlet.HttpServlet30Dispatcher.createHttpRequest(HttpServlet30Dispatcher.java:24) 
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.createResteasyHttpRequest(HttpServletDispatcher.java:61) 
    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:210) 
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56) 
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440) 

我的gradle產出:

apply plugin: 'war' 

apply plugin: 'jetty' 

apply plugin: 'idea' 


sourceCompatibility = 1.7 
targetCompatibility = 1.7 

def springVersion = "3.2.3.RELEASE" 
def jaxrsVersion = "2.0" 
def resteasyVersion = "3.0.1.Final" 

group = 'com.test' 
version = '1.0-SNAPSHOT' 

... 

dependencies { 

    compile "org.jboss.resteasy:resteasy-jaxrs:$resteasyVersion" 
    compile "org.jboss.resteasy:async-http-servlet-3.0:$resteasyVersion" 
} 

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>Archetype RestEasy Web Application</display-name> 
     <context-param> 
      <param-name>resteasy.servlet.mapping.prefix</param-name> 
      <param-value>/chat</param-value> 
     </context-param> 

     <servlet> 
      <servlet-name>Resteasy</servlet-name> 
      <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServlet30Dispatcher</servlet-class> 
      <init-param> 
       <param-name>javax.ws.rs.Application</param-name> 
       <param-value>com.test.MovieManApiApplication</param-value> 
      </init-param> 
     </servlet> 

     <servlet-mapping> 
      <servlet-name>Resteasy</servlet-name> 
      <url-pattern>/chat/*</url-pattern> 
     </servlet-mapping> 

</web-app> 

我看不出有什麼缺少,並沒有發現網絡上真正相關的任何東西。

謝謝

回答

3

搖籃的碼頭插件是基於碼頭6,它不支持Servlet 3.0。您可能需要查看Arquillian Gradle pluginGradle Cargo plugin

+0

謝謝。文檔可以很容易地升級,以幫助用戶減少更少的時間。我創建了另一個問題,因爲我沒有找到如何安裝第三方插件:http://stackoverflow.com/questions/17338063/proper-way-to-install-run-a-gradle-plugin-from-github - 特別是這種酒杯 – unludo

+0

我們一直都很感激貢獻。 –

+0

是否有可能爲文檔做出貢獻? – unludo