【发布时间】:2012-05-21 10:26:34
【问题描述】:
我有一个服务器端 Web 应用程序代码,它使用 mule 来使用 xml 消息并进行一些处理。最近我已经转移到一个新的tomcat版本。当 mule 尝试将 xml 转换为 dom 时,我看到以下错误。
Exception Stack trace:
1。 org.apache.xerces.parsers.XIncludeAwareParserConfiguration 不能转换为 org.apache.xerces.xni.parser.XMLParserConfiguration (java.lang.ClassCastException) org.apache.xerces.parsers.DOMParser:-1 (null) 2. org.apache.xerces.parsers.XIncludeAwareParserConfiguration 不能强制转换为 org.apache.xerces.xni.parser.XMLParserConfiguration (java.lang.ClassCastException) (org.mule.api.transformer.TransformerException) org.mule.module.xml.transformer.XmlToDomDocument:64 (http://www.mulesource.org/docs/site/current2/apidocs/org/mule/api/transformer/TransformerException.html)
根异常堆栈跟踪: java.lang.ClassCastException:org.apache.xerces.parsers.XIncludeAwareParserConfiguration 不能转换为 org.apache.xerces.xni.parser.XMLParserConfiguration 在 org.apache.xerces.parsers.DOMParser.(未知来源) 在 org.apache.xerces.parsers.DOMParser.(未知来源) 在 org.apache.xerces.jaxp.DocumentBuilderImpl.(未知来源) 在 org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(未知来源)在 com.sun.org.apache.xalan.internal.xsltc.trax.SAX2DOM.createDocument(SAX2DOM.java:324) 在 com.sun.org.apache.xalan.internal.xsltc.trax.SAX2DOM.(SAX2DOM.java:84) 在 com.sun.org.apache.xalan.internal.xsltc.runtime.output.TransletOutputHandlerFactory.getSerializationHandler(TransletOutputHandlerFactory.java:187) 在 com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getOutputHandler(TransformerImpl.java:392) 在 com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:298) 在 org.mule.module.xml.transformer.XmlToDomDocument.doTransform(XmlToDomDocument.java:58) 在 org.mule.transformer.AbstractTransformer.transform(AbstractTransformer.java:254)
我认为这是由于我的 WEB-INF/lib 目录中的 xerces 2.9.1 造成的。我取下了罐子,一切正常。问题是我需要在我的 lib 中使用该 jar,因为 lib 中有一些其他遗留的 3rd pary jar 需要在类路径中使用 xerces 版本。
- 有没有一种方法可以让我指定一个不同的 DOM 解析器并让 mule 从类路径中获取它。
- 我检查了 xerces java 文档,XIncludeAwareParserConfiguration 确实实现了 XMLParserConfiguration。想知道它为什么要播放课程吗?
谢谢
【问题讨论】: