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

本文详细记录了一次XML配置文件中出现的错误排查过程。问题源于在<servlet>和<servlet-mapping>标签间误输入了斜杠,导致解析报错。尽管网上的解决方案大多不适用,但通过仔细检查,最终找到了问题所在并解决了这一特殊字符引起的错误,强调了XML配置文件的严谨性和细节的重要性。
摘要由CSDN通过智能技术生成

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

问题翻译过来就是:元素“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>

成功解决:
在这里插入图片描述

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超周到的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值