我有一個由Maven管理的簡單WAR項目。我有src/main/java/*
下的servlet代碼和src/main/webapp
下的所有靜態內容(HTML,圖像等)。我可以在我們的暫存JBoss服務器上部署最終的WAR,並且它可以工作,但重新部署的往返速度卻非常緩慢。我希望能夠在嵌入式Tomcat本地測試更改,但我遇到了問題。Maven的tomcat:運行mojo沒有看到我的servlet
servlet映射設置在src/main/resources/web.xml
- 我認爲這是正確的;相關的部分看起來像
<servlet>
<servlet-name>myServ</servlet-name>
<servlet-class>my.pkg.MyServ</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myServ</servlet-name>
<url-pattern>/ms</url-pattern>
</servlet-mapping>
Maven的告訴我它運行在localhost:8080/myprojectname
,而事實上,當我去那裏,我可以看到的靜態內容。然而,我試過localhost:8080/myprojectname/ms
以及localhost:8080/ms--前者給了我404,後者是0字節的響應。
總之:我的活動內容在哪裏?我在控制檯上看不到任何東西。它看起來像Maven做了一個target/tomcat/logs
但這是空的。 target/tomcat/webapps
也是空的,當我運行mvn tomcat:run -X
時,我得到了很多調試輸出,包括對我所有JAR依賴項的引用,classesDir
屬性指向target/classes
(這是正確的),但沒有提到我設置的那個URL模式的任何地方,也不需要作爲處理程序調用的Servlet類的名稱。我覺得我應該告訴Maven或Tomcat如何找到web.xml,或者以另一種方式指定URL映射....如果你不能說,我是新的:D
ETA:我的設置看起來非常像this guy,儘管我們的問題看起來有所不同。
是的,我面臨同樣的問題。 Glassfish 4看到了servlet,而tomcat 8看不到。 – Benas 2017-04-24 09:59:55