在Eclipse中挑出web.xml错误

在Eclipse中挑出web.xml错误,eclipse,xml-validation,Eclipse,Xml Validation,当Eclipse检测到一个无效的XML文档(在我的例子中是web.XML文件)时,它会转储DTD的内容模型,并告诉我该元素无效。这是毫无帮助的,因为它最后告诉我: 元素类型“web app”的内容必须匹配(图标?、显示名称?、描述?、可分发?、上下文参数*、筛选器*、筛选器映射*、侦听器*、servlet*、servlet映射*、会话配置?、mime映射*、欢迎文件列表?、错误页*、标记库*、资源环境引用*、资源引用*、安全约束*、登录配置?、安全角色*、环境条目*、ejb引用*、ejb本地引用

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

元素类型“web app”的内容必须匹配(图标?、显示名称?、描述?、可分发?、上下文参数*、筛选器*、筛选器映射*、侦听器*、servlet*、servlet映射*、会话配置?、mime映射*、欢迎文件列表?、错误页*、标记库*、资源环境引用*、资源引用*、安全约束*、登录配置?、安全角色*、环境条目*、ejb引用*、ejb本地引用*)”

在900行的web.xml文件中,不容易找到错误


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

我将创建web.xml的副本,并将内容一分为二(确保格式正确)直到我找到元素。然后添加复制文件的其余部分。

我知道这是一个老问题,但对我来说,它最终是web.xml选项的顺序。如果查看错误消息,则元素需要与错误中列出的顺序完全一致。例如:

<web-app>

<display-name>LBSPing!</display-name>

<context-param>
    ...
</context-param>

<listener>
    ...
</listener>

<servlet>
    ...
</servlet>

<servlet-mapping>
    ...
</servlet-mapping>

</web-app>

LBSPing!
...
...
...
...

对我来说,我的上下文参数是在我的servlet和侦听器节点之后,这导致了我的问题。

好吧,这是一个好的开始。我通过手动检查发现了问题,但当Eclipse指出确切的错误行时,这样做听起来真的很愚蠢。这是我的解决方案。“web-app_2_3.dtd”