專案首次啟動正常,但 Reload 或重啟後拋出 ClassCastException: org.apache.xerces.parsers.XML11Configuration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration,導致 Struts 2 核心配置 struts-default.xml 載入失敗。
WEB-INF/lib 發現兩個 XML 解析器 Jar:xml-apis.jar、xerces-2.6.2.jar
WEB-INF/lib,**排除 xml-apis.jar 與 xerces-2.6.2.jar**改用 JDK 1.5 啟動 Tomcat 6,避開 JDK 6 內建解析器衝突(不推薦,治標不治本)。
不要依賴 IDE 自帶庫。MyEclipse 內置庫版本老舊、易衝突。建議:
- 從官網下載 Hibernate、Struts、Spring 等框架正式發布版
- 使用 Maven/Gradle 管理依賴,避免手動複製 Jar 遺漏或版本不一致
- 定期清理
WEB-INF/lib,排除傳遞性依賴帶來的重複 Jar
Caused by: java.lang.ClassCastException:
org.apache.xerces.parsers.XML11Configuration cannot be cast to
org.apache.xerces.xni.parser.XMLParserConfiguration
at org.apache.xerces.parsers.DOMParser.<init>(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(...)
at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:115)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(...)
at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:201)