早上好。此时此刻我完全不知所措。
我的应用程序每5分钟向EMS服务器发送一条JMS消息。在本地的tomcat上启动它工作得很好...但是,当我将它部署到我们的预环境中时,当我试图将Java对象解析为xml字符串时,我得到了这个错误:
Exception in thread "Timer-8" java.lang.NoSuchMethodError: org.codehaus.stax2.XMLStreamWriter2.closeCompletely()V
at com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator.close(ToXmlGenerator.java:1091)
at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3633)
at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:2998)
at es.adif.icecof.ems.JmsHeartbeatSender.sendMessage(JmsHeartbeatSender.java:67)
at es.adif.icecof.common.ThreadHeartbeat$1.run(ThreadHeartbeat.java:42)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)见鬼,到底发生了什么?
非常感谢..。
发布于 2018-04-12 21:51:43
我也遇到了同样的问题,结果发现我在类路径上有Jackson 1.x和2.x两个版本,以及一个旧版本的Woodstox。
解决方案是遍历依赖项列表,删除所有以org.codehaus.jackson作为groupId的依赖项,以及wstx-asl依赖项。
https://stackoverflow.com/questions/49106108
复制相似问题