天天看點

解決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>