解决Maven之webapp报错:Element ‘web-app‘ cannot have character [children]...
原创
©著作权归作者所有:来自51CTO博客作者超周到的程序员的原创作品,请联系作者获取转载授权,否则将追究法律责任
如图,标签首位都报错(当然也不能算是报错,但本文为了增强表述性,就将其用报错一词代指)
问题翻译过来就是:元素“web app”不能有字符[子],因为该类型的内容类型是只包含元素的。
网上搜了很多,不是说将javaee改为j2ee,就是说编码问题,需要将xml中的文本重新手打输入一遍等待,而且文章还都是千篇一律,关键是也都不适用,解决不了问题。
最终经过不断测试,发现问题所在:<servlet></servlet>和<servlet-mapping><servlet-mapping>
这两组标签之间是不能有误输的字符,比如一个字母、数字、点、或者斜杠,我这里是误输了一个斜杠,并且自己没有发现(也感谢评论区一位朋友的指正)!!!
,也就是说
这样就报错(中间夹着一个斜杠字符,注意观察这个斜杠字符在注释的末尾,删除就好了)
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.zlc.servlet.HelloServlet</servlet-class>
</servlet>
<!-- 一个Servlet对应一个Mapping-->/
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/h</url-pattern>
</servlet-mapping>
删去就不报错
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.zlc.servlet.HelloServlet</servlet-class>
</servlet>
<!-- 一个Servlet对应一个Mapping-->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/h</url-pattern>
</servlet-mapping>
成功解决: