2012-03-29 44 views
3

我正在使用maven-jetty-plugin爲Web應用程序編寫集成測試。我在預集成測試階段使用部署戰爭目標。該Web應用程序依賴於另一個Web應用程序,我想通過從同一個碼頭實例提供靜態內容來模擬。獲取maven-jetty-plugin來部署war並同時提供外部靜態內容

這裏是我的碼頭配置的相關部分:

<execution> 
    <id>start-jetty</id> 
    <phase>pre-integration-test</phase> 
    <goals> 
     <goal>deploy-war</goal> 
    </goals> 
    <configuration> 
     <connectors> 
      <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector"> 
       <port>${jetty.port}</port> 
      </connector> 
     </connectors> 
     <daemon>true</daemon> 
     <webApp>${build.directory}/motown2-war.war</webApp> 
     <webAppConfig> 
      <extraClasspath>${basedir}/target/classes/;${basedir}/target/test-classes</extraClasspath> 
      <contextPath>/${context.path}</contextPath> 
     </webAppConfig> 
     <contextHandlers>   
      <contextHandler implementation="org.mortbay.jetty.webapp.WebAppContext"> 
       <contextPath>/other</contextPath> 
       <resourceBase>/opt/data</resourceBase> 
      </contextHandler> 
     </contextHandlers> 
    </configuration> 
</execution> 

我根據這個配置上 http://blog.markfeeney.com/2009/12/scala-lift-jetty-6-static-content-and.html, 但似乎對上下文處理器的配置被忽略。我不能 在日誌文件中找到這個痕跡,jetty返回404而不是靜態 內容,web應用程序本身正在運行。

我錯過了什麼?

回答

1

我想通了:

的resourceHandlers配置只適用於碼頭:運行目標,所以我現在 我在我的測試項目,該項目覆蓋了web應用到 被測試的空Web應用程序的工作:

<execution> 
    <id>start-jetty</id> 
    <phase>pre-integration-test</phase> 
    <goals> 
     <goal>run</goal> 
    </goals> 
    <configuration> 
     <connectors> 
      <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector"> 
       <port>${jetty.port}</port> 
      </connector> 
     </connectors> 
     <daemon>true</daemon> 
     <webApp>${build.directory}/motown2-war.war</webApp> 
     <webAppConfig> 
      <extraClasspath>${basedir}/target/classes/;${basedir}/target/test-classes</extraClasspath> 
      <contextPath>/${context.path}</contextPath> 
      <baseResource implementation="org.mortbay.resource.ResourceCollection"> 
       <resourcesAsCSV>../motown2-war/src/main/webapp,src/main/webapp</resourcesAsCSV> 
      </baseResource> 
     </webAppConfig> 
     <contextHandlers>   
      <contextHandler implementation="org.mortbay.jetty.webapp.WebAppContext"> 
       <contextPath>/other</contextPath> 
       <resourceBase>/opt/data</resourceBase> 
      </contextHandler> 
     </contextHandlers> 
    </configuration> 
</execution> 
+0

我會更新到org.mortbay.jetty:jetty-maven-plugin for jetty 7或jetty 8,具體取決於您需要的servlet api版本。自從碼頭6天以來,該插件已經有相當多的發展。 – 2012-03-30 13:49:17