当前位置: 首页 > 知识库问答 >
问题:

错误JacksonVersion-不支持包“jackson databind”的版本“2.9.4”

支淮晨
2023-03-14

我正在使用azure sdk(azure-Storage-file-datalake、azure-core、azure-标识)从kafka(使用连接器)将avro数据写入azure datalake gen 2,但我收到了如下非常奇怪的错误

2022-05-12 10:46:10 错误 JacksonVersion:506 - 不支持软件包“杰克逊注释”的“2.9.4”版本(早于最早支持的版本 - 2.10.0),请升级。

2022-05-12 10:46:10错误jackson版本:506-不支持软件包“jackson core”的版本“2.9.4”(早于支持的最早版本-2.10.0),请升级。

2022-05-12 10:46:10错误JacksonVersion:506 -不支持包“jackson-databind”的版本“2.9.4”(比最早支持的版本- 2.10.0旧),请升级。

java.lang.Linkage错误: 软件包版本: 杰克逊-注释=2.9.4, 杰克逊-核心=2.9.4, 杰克逊-数据绑定=2.9.4, 杰克逊-数据格式-xml=未知, 杰克逊-数据类型-jsr310=未知, azure-core=1.28.0, 排查版本冲突: https://aka.ms/azsdk/java/dependency/troubleshoot\n\tat com.azure.core.实现

我已经尝试排除jackson依赖项,并尝试显式添加,但仍然会出现错误。

请有人帮忙

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.13.2</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.13.2</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.13.2</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
    <version>2.13.2</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
    <version>2.13.2</version>
    <scope>runtime</scope>
</dependency>
    <dependencies>


    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>connect-api</artifactId>
        <version>2.0.1</version>
        <scope>provided</scope>
    </dependency>
    <!--<dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-clients</artifactId>
        <version>1.1.0</version>
        <scope>provided</scope>
    </dependency>-->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <!-- Apache avro dependency -->
    <dependency>
        <groupId>org.apache.avro</groupId>
        <artifactId>avro</artifactId>
        <version>1.8.2</version>
    </dependency>
    <!-- Newer versions of the storage account jar is not working. -->
    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-storage-file-datalake</artifactId>
        <version>12.9.0</version>
        <exclusions>
            <exclusion>
                <groupId>com.azure</groupId>
                <artifactId>azure-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.azure/azure-core -->
    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-core</artifactId>
        <version>1.28.0</version>
        <exclusions>
            <!-- Collision with Kafka Jackson dependencies -->
            <exclusion>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-xml</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.fasterxml.jackson.datatype</groupId>
                <artifactId>jackson-datatype-html" target="_blank">jsr310</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-identity</artifactId>
        <version>1.5.1</version>
        <exclusions>
            <exclusion>
                <groupId>com.azure</groupId>
                <artifactId>azure-core</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.microsoft.azure</groupId>
                <artifactId>msal4j</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.linguafranca.pwdb</groupId>
                <artifactId>KeePassJava2</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>msal4j</artifactId>
        <version>1.9.1</version> <!-- {x-version-update;com.microsoft.azure:msal4j;external_dependency} -->
        <exclusions>
            <exclusion>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!-- Schema registry dependency -->

    <dependency>
        <groupId>io.confluent</groupId>
        <artifactId>kafka-connect-avro-converter</artifactId>
        <version>3.3.0</version>
        <exclusions>
            <exclusion>
            <groupId>io.confluent</groupId>
            <artifactId>kafka-schema-registry-client</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>io.confluent</groupId>
        <artifactId>kafka-schema-registry-client</artifactId>
        <version>3.3.0</version>
        <exclusions>
            <exclusion>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>2.21.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
        <scope>test</scope>
    </dependency>






</dependencies>

共有3个答案

郑俊美
2023-03-14

托管环境有那些在运行时加载并导致问题的2.9.4版本的jackson jar,我用较新版本的jar替换了它们,现在一切正常。(我们在主机上安装了kafka客户端,内部在kafka/libs中安装了这些jar)

从 - https://github.com/Azure/azure-sdk-for-java/issues/28902

鲁羽
2023-03-14

这是Azure SDK的一个挑战(这里有一个类似的问题)。Azure SDK依赖于Jackson。Jackson的具体版本取决于您使用的azure sdk版本。

最新版本支持Jackson 2.10-2.13。这意味着您可能对Jackson有其他依赖关系,SDK仍然可以工作。提供的Jackson版本取自2.10-2.13。Azure SDK与所有这些版本兼容。

如果你希望使用Jackson 2.9(或者如果它是来自其他依赖项的一个依赖项),那就没有办法了。你必须升级你的依赖项,这样它才能获取jackson 2.10和更高版本。

在你的情况下,会有一些依赖关系正在获取2.9.x系列。

这就是我要做的:

  1. 基于所有非azure-sdk依赖项。决定保留哪个jackson版本。在pom.xml中显式添加此jackson依赖项
  2. 使用azure-sdk BOM
  3. 您不必指定排除。在pom中指定版本会覆盖其他依赖项版本
裴曜灿
2023-03-14

范围为“运行时”的依赖项不用于编译,而仅用于执行。具有此范围的依赖项不会放在编译类路径上,因此您可以删除运行时范围。

但是,覆盖您自己不使用的可传递依赖项版本的更好方法是使用如下的取消依赖性管理:

<project>
  [...]
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>group-a</groupId>
        <artifactId>artifact-a</artifactId>
        <version>1.0</version>
      </dependency>
    [...]
    </dependencies>
  </dependencyManagement>
</project>
 类似资料:
  • 当我试图用proguard混淆某个应用程序时,我总是会遇到这种错误 我已经更新了Proguard并检查了项目配置文件,但总是出现相同的错误。我正在使用Intellij IDEA的最新版本

  • 我试图在所有节点都安装了Java1.7的集群上使用spark-submit运行java spark作业。 作业失败,返回java.lang.UnsupportedClassVersionError:com/WindLogics/DMF/Wether/MyClass:Unsupported Major.Minor版本51.0。 此外,当主机设置为Local时,作业也可以正常工作。如何进行调试和修复此

  • 问题内容: 在IntelliJ中,当我尝试从构建菜单进行构建时,我收到此奇怪的错误消息:错误:java:不支持版本10 我不明白,因为在“项目结构”中设置了以下设置:项目SDK:9.0项目语言级别:SDK默认模块语言级别:项目默认(两个模块) 在我的pom.xml文件中,两个模块中都设置了这些属性: 我不知道为什么要尝试将JDK 10用于任何东西,但我仍然收到该消息。我很高兴使用JDK10,但是我

  • 我已经改变了gradle构建工具版本版本和清洁项目,使项目,但不工作

  • 我在做 但是我已经看到了java的版本是否相等,这是正确的。 如: 哪个javac->/usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/javac 哪个java->/usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java java->-version java版本“1.7.0_79”OpenJDK运行时环境(IcedTea 2.

  • 问题内容: 我有以下代码: 我正在尝试查询(例如)。 我不断收到此错误: 什么会导致此错误,我该如何解决? 问题答案: 不知道出了什么问题,但是当我尝试使用库执行相同的操作时,它会起作用: 请注意,两者之间存在差异,我的代码简单得多,它不适用于Cookie,并且不会伪装Safari浏览器。 如果您需要将Cookie与一起使用,则可以在其中找到很好的支持。