Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Stax ClassCastException_Java_Xml_Stax_Xalan - Fatal编程技术网

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
。。。