天天看点

解决Maven之webapp报错:Element ‘web-app‘ cannot have character [children]...

如图,标签首位都报错(当然也不能算是报错,但本文为了增强表述性,就将其用报错一词代指)

问题翻译过来就是:元素“web app”不能有字符[子],因为该类型的内容类型是只包含元素的。

解决Maven之webapp报错:Element ‘web-app‘ cannot have character [children]...

网上搜了很多,不是说将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>