XMLStreamWriter2.closeCompletely()V NoSuchMethodError

Nek*_*rma 4 java nosuchmethoderror jackson

早上好……此刻我完全迷失了。

我的应用程序每 5 分钟向 EMS 服务器发送一条 JMS 消息。在本地 tomcat 上启动它工作正常......但是当我将它部署到我们的 PRE 环境时,我在尝试将 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)
Run Code Online (Sandbox Code Playgroud)

到底会发生什么?

非常感谢...

THe*_*per 5

我遇到了同样的问题,结果发现类路径上有 Jackson 1.x 和 2.x 版本以及 Woodstox 的旧版本。

解决方案是遍历依赖项列表并删除所有具有org.codehaus.jacksongroupId 的wstx-asl依赖项以及依赖项。

  • `wstx-asl` 依赖也是我的问题,它与较新的 `woodstox-core-5.1.0` 冲突,所以我不得不排除它。在旧版本中,`XMLStreamWriter2` 接口不包含 `closeCompletely()` 方法(无论如何它只执行经典的 `close()`)。 (2认同)