2014-10-06 58 views
0

我有一個項目被用作許多不同webapps的基礎。我試圖使用jetty-maven插件在「測試」模式下運行它。在web.xml中使用來自測試範圍的過濾器

該項目是一個多模塊項目。該過濾器是位於另一個模塊,這是我試圖運行模塊的依賴,像這樣規定的:然後

<dependency> 
    <groupId>my.example.test</groupId> 
    <artifactId>test</artifactId> 
    <version>X.X.X</version> 
    <scope>test</scope> 
</dependency> 

從依賴的過濾器類添加爲網絡過濾器。 XML:

<plugin> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    <version>9.2.2.v20140723</version> 
    <configuration> 
     <webApp> 
      <contextPath>/test</contextPath> 
      <descriptor>src/test/webapp/WEB-INF/web.xml</descriptor> 
     </webApp> 
     <useTestScope>true</useTestScope> 
     <jvmArgs>some arguments</jvmArgs> 
     <jettyXml>jetty.xml,jetty-ssl.xml,jetty-https.xml</jettyXml> 
     <stopKey>stopJetty</stopKey> 
     <stopPort>12345</stopPort> 
    </configuration> 
</plugin> 

<filter> 
    <filter-name>test</filter-name> 
    <filter-class>my.example.test.test.TestFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>test</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

最後,該項目通過對碼頭,Maven插件(mvn jetty:run-forked),這是建立這樣一個電話開始

該項目運行並顯示index.html文件,但該過濾器從不應用於任何請求。是否可以按照我設置的方式運行測試範圍應用程序?還有什麼我可以錯過?

回答

1

如果服務器啓動,沒有錯誤,那麼過濾器就在那裏。

也許您可以將日誌記錄添加到篩選器init()doFilter()以驗證它是否實際運行。

另外,如果您使用的是javax.websocket,那麼這些HTTP/1.1 WebSocket升級請求將不會被過濾。

+0

看來,這兩種方法都沒有被調用。沒有websockets。 – Celos 2014-10-06 12:49:02