【问题标题】:Explicitly specify a DOM parser for mule为 mule 显式指定 DOM 解析器
【发布时间】: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 版本。

  1. 有没有一种方法可以让我指定一个不同的 DOM 解析器并让 mule 从类路径中获取它。
  2. 我检查了 xerces java 文档,XIncludeAwareParserConfiguration 确实实现了 XMLParserConfiguration。想知道它为什么要播放课程吗?

谢谢

【问题讨论】:

    标签: dom mule xerces


    【解决方案1】:

    Mule 的AbstractXmlTransformer 提供了多种配置选项,包括setXMLInputFactory,我相信它可以帮助您实现目标。

    问题是这些配置选项不在 XML 级别提供,因此您必须将 XmlToDomDocument 声明为自定义转换器才能在其上设置不同的属性。

    【讨论】:

      猜你喜欢
      • 2020-01-17
      • 2011-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      • 2012-03-21
      • 2013-07-24
      相关资源
      最近更新 更多