2011-08-16 369 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不可用)时收到此错误。重新连接解决了这个问题

相关问题