【发布时间】:2014-09-08 10:22:24
【问题描述】:
我正在 Eclipse 中开发一个 GWT 应用程序,并使用 jdom2 来读取一些自定义 xml 属性文件。
最近更新后,我的应用程序在尝试读取 xml 文件时出现上述错误而失败。相关的堆栈跟踪是:
org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration
org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.<init>(Unknown Source)
org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source)
org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source)
org.jdom2.input.sax.XMLReaders.createXMLReader(XMLReaders.java:165)
org.jdom2.input.SAXBuilder.createParser(SAXBuilder.java:871)
org.jdom2.input.SAXBuilder.buildEngine(SAXBuilder.java:854)
org.jdom2.input.SAXBuilder.getEngine(SAXBuilder.java:904)
org.jdom2.input.SAXBuilder.build(SAXBuilder.java:1116)
uk.co.platosys.db.jdbc.DatabaseProperties.loadProperties(DatabaseProperties.java:78)
研究此问题表明,当类路径中存在不兼容版本的 xerces jar 时,可能会出现该错误。
gwt-dev-2.6.1.jar 包含 xerces 包,我的直觉是这个最新版本的 gwt-dev 捆绑了一个不兼容的版本。然而,当前版本 jdom2.0.5 与 Xerces 的 2.11 版本一起发布,这似乎是 Apache 发布的最新版本。将这些罐子放在我的类路径上似乎并不能解决问题;我以前能够依赖 gwt-dev 中的版本。
我对此相当束手无策,并且大大超出了我的舒适区。
【问题讨论】:
-
尝试从您的项目中删除 GWT,然后将其添加回来。另外,请确保您的 WEB-INF/lib 文件夹中没有重复的 jars(旧的和新的)。
标签: java eclipse gwt xerces jdom