有人帮助我,当我在web.xml中放入async支持的标记时出现此错误:
cvc-complex-type.2.4.a:找到以元素' async-supported'开头的无效内容。其中一个' {" http://java.sun.com/xml/ns/javaee":run-as," http://java.sun.com/xml/ns/javaee":security-role-ref}'是预期的。
这是我的web.xml
compare
答案 0 :(得分:10)
web.xml是XML架构。如果您不熟悉XML模式,它们会描述XML文档可以包含哪些元素和属性,以便成为该模式的有效实例。
话虽这么说,您可以在架构位置看到正在使用的架构文件的版本,即...web-app_2_5.xsd
。这意味着您的web.xml将基于该版本的模式,该模式映射到该版本的servlet规范,在您的情况下为2.5
。这个问题是在3.0之前不会向servlet规范引入异步。因此,2.5模式中没有元素规范。因此,当验证xml时,它表示文档中不允许使用此类元素<async-supported>
,因为它不符合模式。
要修复它,只需将版本更改为3.0,将架构文件更改为3_0
<!-- change to 3.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">
<!-- change to 3_0 -->