Eclipse抱怨web-app属性

时间:2011-07-09 19:26:18

标签: eclipse java-ee

我的web.xml中的web-app声明是:

<web-app 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抱怨所有4个属性,这是一个Eclipse抱怨:

Attribute "version" must be declared for element type "web-app"

为什么Eclipse会抱怨这些属性?我在这里做错了吗?

8 个答案:

答案 0 :(得分:30)

删除DOCTYPE行,即xsd要替换的行。我有同样的问题,只有这个有用。

答案 1 :(得分:11)

尝试这样:

<web-app  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"   version="2.4" >

Eclipse验证器对订单非常严格。

答案 2 :(得分:9)

我遇到了同样的问题。我尝试了不同的架构位置,它对我有用。而不是

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

尝试使用此

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd

另外,请将版本设置为"3.0"

答案 3 :(得分:3)

您是否忘记了xml文件中的这一行?:

    <?xml version="1.0" encoding="ISO-8859-1"?>

你的文件应该这样开始:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app 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_2_5.xsd" version="2.5">

如果它不起作用,请刷新您的项目。

答案 4 :(得分:1)

请参阅this oracle.com链接,了解Java EE 7宣布的内容(假设这是我们正在使用的内容)。链接状态

  

所有新架构都在http://xmlns.jcp.org/xml/ns/javaee/   命名空间。

名称空间java.sun尚未成为java.oracle,而是由The Java Community Process (JCP)保留。因此,所有名称空间都应指向xmlns.jcp.org,Java EE 7文档也指出了这一点。

现在,当我们部署Web应用程序(因此需要定义web.xml)时,首先我们必须知道我们打算做什么。

说,我们正在使用Apache Tomcat V8。如果我们阅读文档here,我们就会知道它附带了Servlet 3.1。所以,我更喜欢Servlet 3.1的实现,只是为了保持最新,如果不是其他任何东西。

现在所说的一切,这就是我的声明

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

</web-app>

希望这能回答这个问题。

答案 5 :(得分:1)

我从

更改了声明

http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd“&GT;

以下,它就像魅力一样。现在web.xml中没有显示错误

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd“&GT;

答案 6 :(得分:1)

我要做的就是用下面的内容替换所有的xsd和模式位置声明,

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
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">

一切正常。

参考:https://docs.oracle.com/cd/E24329_01/web.1211/e21049/web_xml.htm#WBAPP502

答案 7 :(得分:0)

只需删除DOCTYPE即可。它的工作正常。