2011-08-16 321 views
5

當我在Eclipse中創建新的動態Web項目,自動創建web.xml顯示以下錯誤:CVC-elt.1:找不到元素「web應用」的聲明

cvc-elt.1: Cannot find the declaration of element 'web-app'

和紅色的背景上此行:

<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

我想知道爲什麼會發生此錯誤以及如何擺脫此錯誤。 我在我的項目中使用了Eclipse版本3.1,Apache Tomcat 5.0和JDK 1.4。我對Eclipse很新。

回答

2

我在Eclipse 4.1,Apache Tomcat 7.x和JDK 1.6上看到了這一點。它顯然與緩存XSD文件有關。 Some people提供了使用DTD而不是模式的web.xml的替代語法。但我已經取得了成功,其中一個solution建議僅關閉緩存。更好的選擇,也是最後一個環節,是手動下載和安裝XSD。

更新:我決定嘗試自己下載其中一個XSD,並嘗試手動將其安裝在Eclipse XML目錄中。很明顯,Java XSD服務器存在問題 - 顯然,當Eclipse試圖下載和緩存XSD時,看到了這些問題。也許當Oracle/Sun一起採取行動並且服務器再次開始工作時,Eclipse將停止提供此錯誤。與此同時,我將不得不關閉緩存,看看我能得到多少。

更新:一旦Sun服務器恢復了一段時間,下載XSD文件並將其存儲在本地的某個半永久位置。然後進入Eclipse首選項,搜索XML目錄,併爲其提供對XSD文件的引用。我已經驗證了這可以防止Eclipse嘗試下載和緩存文件。如果你不能相信Sun服務器,這是最好的解決方案 - 顯然你不能。

+0

雖然鏈接的解決方案站點有問題,但Eclipse Neon的相關選項位於Window-> Preferences-> General-> Network Connections-> Cache-> Disable Caching,選中該框,然後清理並構建。 –

3

您需要的DOCTYPE元素添加到XML的開始:

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> 
+1

將此添加到XML的開頭:<!DOCTYPE web-app PUBLIC「 - // Sun Microsystems,Inc. //DTD Web Application 2.3 // EN」「http://java.sun.com/dtd/web -app_2_3.dtd「> – sanjay

+0

2.3 DTD是錯誤的版本,該問題需要web-app版本2.4,並且沒有web-app_2_4.dtd – gb96

1

我也遇到了這個問題,並沒有發現什麼是合理的。爲了快速解決。完全刪除您的工作空間並再次進行項目克隆。你不會再看到問題。它幫助了我。

0

我在不知不覺中丟失了互聯網連接(意味着xsd不可用)時收到此錯誤。重新連接解決了這個問題

相關問題