Java Stax ClassCastException
全部, 下面的代码将Java Stax ClassCastException,java,xml,stax,xalan,Java,Xml,Stax,Xalan,全部, 下面的代码将源代码转换为字符串。在我向maven POM添加了jackson dataformat xml之前,这种方法一直有效。不幸的是,我确实需要这种依赖性 try { final Transformer transformer = TransformerFactory.newInstance().newTransformer(); final StringWriter writer = new StringWriter(); final StreamResult
源代码
转换为字符串
。在我向maven POM添加了jackson dataformat xml
之前,这种方法一直有效。不幸的是,我确实需要这种依赖性
try {
final Transformer transformer = TransformerFactory.newInstance().newTransformer();
final StringWriter writer = new StringWriter();
final StreamResult result = new StreamResult(writer);
transformer.transform(source, result);
return writer.toString();
} catch (final Exception e) {
throw new IOException(e);
}
添加了jackson dataformat xml
,我收到以下异常
Caused by: java.lang.ClassCastException: org.codehaus.stax2.ri.evt.NamespaceEventImpl cannot be cast to java.lang.String
at com.sun.org.apache.xalan.internal.xsltc.trax.StAXEvent2SAX.handleEndElement(StAXEvent2SAX.java:342) ~[?:1.8.0_51]
at com.sun.org.apache.xalan.internal.xsltc.trax.StAXEvent2SAX.bridge(StAXEvent2SAX.java:199) ~[?:1.8.0_51]
at com.sun.org.apache.xalan.internal.xsltc.trax.StAXEvent2SAX.parse(StAXEvent2SAX.java:116) ~[?:1.8.0_51]
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:688) ~[?:1.8.0_51]
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:743) ~[?:1.8.0_51]
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:357) ~[?:1.8.0_51]
[the-above-code]
我尝试了一些方法,比如手动设置
TransformerFactory
,但没有成功。有什么想法吗?什么是source
?@Andreas它是一个javax.xml.transform.source
包含xml。我的意思是,什么类型的source
DOMSource
,JAXBSource
,SAXSource
,statxsource
,或StreamSource
?基本上,您是如何创建source
对象的?我可以使用statxsource(XMLEventReader)
重现错误。看起来这是xalan
和stax
之间的兼容性问题。我试图用saxon
替换xalan
。但是它不支持XMLEventReader
…什么是source
?@Andreas它是包含xml的javax.xml.transform.source
。我的意思是,什么类型的source
DOMSource
,JAXBSource
,SAXSource
,statxsource
,或StreamSource
?基本上,您是如何创建source
对象的?我可以使用statxsource(XMLEventReader)
重现错误。看起来这是xalan
和stax
之间的兼容性问题。我试图用saxon
替换xalan
。但它不支持XMLEventReader
。。。