首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Tomcat 啟動正常但 WebApp 狀態為 false:web.xml 解析錯誤排查實戰

     編輯:程式設計綜合問答

錯誤現象

  • Tomcat 管理介面顯示自建專案 /webDemo 狀態為 false。
  • catalina.log 報錯:
    Parse error in application web.xml file at jndi:/localhost/webDemo/WEB-INF/web.xml
    org.xml.sax.SAXParseException: 元素類型 "context-param" 必須由匹配的結束標記 "" 終止。

根因定位

web.xml 第 11 行附近 <context-param> 元素缺少對應的 </context-param> 結束標籤,導致 XML 解析失敗,Context 無法啟動。

快速修正步驟

  1. 開啟 webDemo/WEB-INF/web.xml。
  2. 定位第 11 行附近,檢查所有 <context-param> 是否成對閉合。
    典型正確結構:
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>  <-- 確保此結束標籤存在
  1. 儲存後在 Tomcat 管理介面點擊 Reload 或重啟 Tomcat。
  2. 若仍失敗,檢查是否有其他 XML 語法錯誤(如屬性值未加引號、特殊字元未轉義)。

預防措施

  • 使用支援 XML Schema 驗證的編輯器(VS Code + Red Hat XML、IntelliJ IDEA)。
  • 專案建置流程加入 xmllint --noout web.xml 或 Maven xml-validator-plugin 自動檢查。
  • 避免手工編輯 web.xml,優先使用 Java Config(@Configuration、WebApplicationInitializer)減少 XML 維護負擔。

延伸閱讀

Servlet 3.0+ 環境下可完全移除 web.xml,改用 ServletContainerInitializer 機制自動掃描註冊 Servlet/Filter/Listener,徹底消除 XML 解析風險。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved