【问题标题】:Getting error in jackson library code在杰克逊库代码中出现错误
【发布时间】:2014-07-06 09:08:08
【问题描述】:

我们使用的是 dropwizard 0.6.3 版。当我们尝试升级 0.7.0 版本时,我们在服务启动时收到此错误。

线程“主”java.lang.VerifyError 中的异常:com.fasterxml.jackson.module.afterburner.deser.SuperSonicBeanDeserializer 覆盖最终方法反序列化。(Lcom/fasterxml/jackson/core/JsonParser;Lcom/fasterxml/jackson /databind/DeserializationContext;)Ljava/lang/Object;

尝试搜索,没有得到任何解决方案。当我查看 SuperSonicBeanDeserializer 类时,它有一个覆盖方法。但是 SuperSonicBeanDeserializer 类是最终的。我不知道如何解决这个问题。任何解决方案/建议都会对我们有很大帮助。

【问题讨论】:

  • 您的类路径中很可能有两个版本的 Jackson 库。您如何构建您的应用程序?
  • 谢谢。作为一个依赖项的一部分,还包括不同的杰克逊版本..
  • 你能摆脱不同的杰克逊版本吗?否则可能会导致各种问题。我建议您坚持使用 Dropwizard 附带的最新 Jackson 版本。
  • Afterburner 模块的版本与 Jackson 核心组件(jackson-core、jackson-databind)兼容尤为重要:补丁版本可能不同,但次要版本必须匹配。听起来这是您的根本原因。

标签: jackson dropwizard


【解决方案1】:

查看 maven 依赖树应该有助于找出问题所在:

mvn dependency:tree -Dverbose

在结果中查找“因冲突而省略”。您可能拥有早于 2.3.0 的 jackson-databind 版本,它覆盖了 Dropwizard 0.7 中的版本。

【讨论】:

  • 这为我解决了这个问题,并且能够以两种不同的方式解决它。一个指定 jackson-databind 作为依赖项并将版本设置为 2.3.x,或者两个对引入旧版本 jackson 的依赖项设置排除项。
  • 您也可以使用:'mvn dependency:tree -Dverbose -Dincludes=:jackson-databind::' 以获得更精确的依赖路径信息
猜你喜欢
  • 2013-11-11
  • 1970-01-01
  • 2019-11-09
  • 2018-08-25
  • 1970-01-01
  • 1970-01-01
  • 2018-09-24
  • 1970-01-01
  • 2018-07-29
相关资源
最近更新 更多