2

当 Eclipse 检测到无效的 XML 文档(在我的例子中是一个web.xml文件)时,它会转储 DTD 的内容模型并告诉我该元素无效。这是非常无益的,因为它最终告诉我:

元素类型“web-app”的内容必须匹配“(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping *,session-config?,mime-mapping*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security -role*,env-entry*,ejb-ref*,ejb-local-ref*)”。

在一个 900 行的 web.xml 文件中,错误不容易发现。

如何挑选出导致文档无效的第一个元素?

4

2 回答 2

2

我将创建 web.xml 的副本并将内容切成两半,(确保它保持良好的格式),直到找到该元素。之后,您添加复制文件的其余部分。

于 2010-08-09T07:45:46.990 回答
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 和侦听器节点之后,这导致了我的问题。

于 2012-08-13T13:38:16.370 回答