2011-09-08 124 views
3

我有一個動態Web項目,它有一些@WebServlet註釋,所有這些工作都很好。自從我將Dynamic Web項目切換到Maven Web項目後,既然如此,我無法通過我在@WebServlet註釋中定義的內容訪問我的任何servlet。我還應該注意到,我的一些servlet覆蓋了其他Maven項目。我必須現在在web.xml文件中定義我的servlet映射嗎?Maven忽略@WebServlet註釋

感謝

回答

3

Maven的故事之外,在@WebServlet註釋Servlet 3.0中引入。如果它們沒有被初始化,那麼它只是意味着Web應用程序描述符(web.xml)未聲明符合Servlet 3.0,或者目標容器不支持Servlet 3.0。

您需要驗證您的web.xml是否符合Servlet 3.0。即<web-app>根聲明必須匹配:

<web-app 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    id="WebApp_ID" version="3.0"> 
+0

的Maven不喜歡這種語法的web.xml文件.... – Ayyoudy

+1

如果你在描述該問題更具體這將有助於。我不能立即飛過/走過來,親自到你身邊窺視你的環境,找出你得到的錯誤信息以及發生的情況。 – BalusC

+0

這是在我的 .... chowing ... ...如果我刪除描述標籤,它喜歡它就好了。我認爲這可能是3.0的DTD的一部分。除了XML中的語法不正確之外,沒有任何錯誤消息提供給您。此外,這不是一個錯誤的maven,我認爲這只是標準的XML被檢查agaisnt提供的架構。感謝您的幫助,將標記爲已解決。 – Ayyoudy