【问题标题】:XMLStreamWriter2.closeCompletely()V NoSuchMethodErrorXMLStreamWriter2.closeCompletely()V NoSuchMethodError
【发布时间】:2018-08-12 20:25:59
【问题描述】:

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

我的应用程序每 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)

到底发生了什么?

非常感谢...

【问题讨论】:

    标签: java jackson nosuchmethoderror


    【解决方案1】:

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

    解决方案是遍历依赖项列表并删除所有以org.codehaus.jackson 作为 groupId 的依赖项,以及 wstx-asl 依赖项。

    【讨论】:

    • wstx-asl 依赖也是我的问题,它与较新的woodstox-core-5.1.0 冲突,所以我不得不排除它。在旧版本中,XMLStreamWriter2 接口不包含closeCompletely() 方法(无论如何它只包含经典的close())。
    • 我已经用另一种方式修复了它。只需将我的新 Jackson 放在 pom.xml 中的其他旧遗留冲突依赖项之上。 The order of dependencies does matter
    猜你喜欢
    • 2021-10-15
    • 2015-11-06
    • 1970-01-01
    • 2012-07-05
    • 2017-12-28
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多