cvc-elt.1:找不到元素'web-app'的声明

时间:2011-08-16 04:48:41

标签: java-ee

当我在Eclipse中创建新的动态Web项目时,自动创建的web.xml显示以下错误:

  

cvc-elt.1:找不到元素'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的新手。

6 个答案:

答案 0 :(得分:4)

您需要将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 :(得分: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服务器,这是最好的解决方案 - 显然您不能。

答案 2 :(得分:1)

我也遇到过这个问题而且没有找到合理的东西。快速解决方案。完全删除工作区并再次删除项目。你再也看不到问题了。它帮助了我。

答案 3 :(得分:0)

当我在不知不觉中丢失互联网连接意味着xsd不可用时,我收到了此错误。重新连接解决了它

答案 4 :(得分:0)

删除工作区并创建新工作区帮助我解决了这个错误。我在 ZK Web 应用程序中遇到此错误

答案 5 :(得分:0)

对我来说它现在工作 换成这个—— <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">