2010-08-09 76 views
2

當Eclipse檢測到無效的XML文檔(在本例中爲web.xml文件)時,它會轉儲DTD的內容模型並告訴我該元素無效。這是非常無益的,因爲它最終告訴我:在Eclipse中記錄web.xml錯誤

元素類型「web-app」的內容必須匹配「(icon?,display-name?,description?,distributable?,context-param *,*過濾器,過濾器映射*,聽者*,* servlet的,servlet的映射*,會話配置?,MIME映射*,歡迎文件列表?,錯誤頁*,*的taglib,資源env- REF *,資源引用*,安全約束*,登錄-配置?,安全角色*,ENV進入*,EJB-REF *,EJB本地-REF *)」。

在一個900行的web.xml文件中,錯誤不容易找到。

如何挑選導致文檔無效的第一個元素?

回答

2

我會創建一個web.xml的副本,並將內容分成兩半(確保它保持良好狀態),直到找到該元素。之後,添加複製文件的其餘部分。

+0

那麼,這是一個好的開始。我通過人工檢查發現了這個問題,但是當Eclipse應該指出確切的錯誤行時,聽起來很愚蠢。 – 2010-08-09 08:16:38

2

我知道這是一個老問題,但對我而言,它最終成爲web.xml選項的順序。如果您查看錯誤消息,則您的元素必須按錯誤中列出的順序排列。例如:

<web-app> 

<display-name>LBSPing!</display-name> 

<context-param> 
    ... 
</context-param> 

<listener> 
    ... 
</listener> 

<servlet> 
    ... 
</servlet> 

<servlet-mapping> 
    ... 
</servlet-mapping> 

</web-app> 

對我來說,我的上下文參數在我的servlet和listener節點之後,這是我的問題。

+0

是我的解決方案。 「網絡app_2_3.dtd」 – Vadimo 2013-02-15 11:22:55