我正在尝试使用jackson-dataformat-xml包将JSON解析为XML。调用XmlMapper.writeValueAsString(string)
方法时,将引发以下错误:
java.lang.NoSuchMethodError: org.codehaus.stax2.XMLStreamWriter2.closeCompletely()V
at com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator.close(ToXmlGenerator.java:981)
at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:2727)
at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:2210)
当我打印出以下代码行时:
org.codehaus.stax2.XMLStreamWriter2.class.getProtectionDomain().getCodeSource().getLocation().toString();
它将代码源指向意外目录:file:/C:/Program%20Files/sges-v3/glassfish/modules/woodstox-osgi.jar
似乎woodstox-osgi.jar
中的stax2-api版本不包含此closeCompletely()
方法,此外,它从该位置获取XMLStreamWriter2类的行为异常。
我希望为解决这一冲突提供一些帮助。在我的搜索中,我发现人们通过修改Maven依赖关系解决了此类问题,但是对于我正在开发的应用程序来说这是不可能的。有没有解决这个问题的方法?否则,将需要找到替代的stax实现,以将JSON解析为XML。
一些额外的信息。这是我应用程序的类路径中的jackson / stax jar:
jackson\jackson-annotations-2.2.3.jar
jackson\jackson-core-2.2.3.jar
jackson\jackson-databind-2.2.3.jar
jackson\jackson-dataformat-xml-2.2.3.jar
jackson\jackson-module-jaxb-annotations-2.2.3.jar
jackson\stax2-api-3.1.1.jar