当Eclipse检测到无效的XML文档时,在我的情况下是web.xml
文件,它会转储DTD的内容模型,并告诉我该元素无效。这是非常无益的,因为它最终告诉我:
元素类型“web-app”的内容必须匹配“(icon?,display-name ?, description?,distributable ?, context-param *,filter *,filter-mapping *,listener *,servlet *, Servlet映射*,会话配置?,MIME映射*,欢迎文件列表?,错误页*,标签库*的resource-env-REF *,资源引用*,安全约束*,登录,配置?,安全角色*,ENV进入*,EJB-REF *,EJB本地-REF *)。”
在900行的web.xml文件中,错误并不容易找到。
如何挑出导致文档无效的第一个元素?
答案 0 :(得分:2)
我会创建web.xml的副本并将内容分成两半(确保它保持良好状态),直到找到该元素。之后,添加复制文件的其余部分。
答案 1 :(得分:2)
我知道这是一个老问题,但对我而言,它最终成为web.xml选项的顺序。如果查看错误消息,则元素必须按错误中列出的确切顺序排列。例如:
<web-app>
<display-name>LBSPing!</display-name>
<context-param>
...
</context-param>
<listener>
...
</listener>
<servlet>
...
</servlet>
<servlet-mapping>
...
</servlet-mapping>
</web-app>
对我来说,我的context-params是在我的servlet和监听器节点之后,这导致了我的问题。