ClassNotFoundException:com.fasterxml.jackson.databind.AnnotationIntrospector$XmlExtensions 因为logstash-logback-encoder 版本

问题描述 投票:0回答:0

我有一个复杂的项目,它对 jackson-databind 有很多依赖。

它在 Jersey 2.19.1 上运行良好

最近我决定将 Jersey 升级到 2.40。在这样做之前,我在一个类似的小型项目中尝试过,效果很好。

然后我更新了我的主要复杂项目,当系统启动时它会抱怨

ClassNotFoundException: com.fasterxml.jackson.databind.AnnotationIntrospector$XmlExtensions 

我尝试了很多天来解决这个问题,最终发现 IDE 发现了 AnnotationIntrospector 所在的 jackson-databind 的两个版本。其中一个来自 Jersey,这是预料之中的。但另外一个来自logstash-logback-encoder,这是出乎意料的。

根据maven的规则,任何冲突版本都将被确定为最终版本。我知道那些 Maven 规则以及如何使用这些规则。

但是没想到IDE又找到了另一个版本。 我在命令行中运行这个系统并遇到了同样的问题。所以,这不是 IDE 问题。

在我更新了logstash-logback-encoder版本以匹配最终的Jackson-databind版本后,问题就消失了。

maven jackson classnotfoundexception conflicting-libraries logstash-logback-encoder
© www.soinside.com 2019 - 2024. All rights reserved.