简体   繁体   English

AWS Java SDK正在使用旧版的jackson jar

[英]AWS Java SDK is taking old version of jackson jar

Currently I am working to add AWS Java SDK in my existing application to perform operations related to AWS cloud. 目前,我正在努力在现有应用程序中添加AWS Java SDK,以执行与AWS云相关的操作。 While importing the aws java sdk for latest version ie1.11.113 I am getting run time exception. 在导入aws java sdk以获取最新版本ie1.11.113时,我遇到了运行时异常。 After researching about exception the reason is java sdk using deprecated version or incompatible version for jackson jar. 在研究异常后,原因是java sdk使用了不赞成版本或者与jackson jar不兼容的版本。

The sdk is using jackson jar of version 4.1 while required version must at least 5. Even I am giving latest jackson jar but still it is taking reference of jar present in SDK. sdk正在使用版本4.1的jackson jar,而所需的版本必须至少为5.即使我正在给最新的jackson jar但仍然是参考SDK中存在的jar。 Below code snapshot will help to identify this easily 下面的代码快照将有助于轻松识别这一点

Caused by: java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.ObjectMapper.enable([Lcom/fasterxml/jackson/core/JsonParser$Feature;)Lcom/fasterxml/jackson/databind/ObjectMapper;
    at com.amazonaws.partitions.PartitionsLoader.<clinit>(PartitionsLoader.java:54) [aws-java-sdk-core-1.11.113.jar:]
    at com.amazonaws.regions.RegionMetadataFactory.create(RegionMetadataFactory.java:30) [aws-java-sdk-core-1.11.113.jar:]
    at com.amazonaws.regions.RegionUtils.initialize(RegionUtils.java:64) [aws-java-sdk-core-1.11.113.jar:]
    at com.amazonaws.regions.RegionUtils.getRegionMetadata(RegionUtils.java:52) [aws-java-sdk-core-1.11.113.jar:]
    at com.amazonaws.regions.RegionUtils.getRegion(RegionUtils.java:105) [aws-java-sdk-core-1.11.113.jar:]
    at com.amazonaws.regions.Region.getRegion(Region.java:43) [aws-java-sdk-core-1.11.113.jar:]

How can I avoid code to use this particular jar and make it use latest jar . 如何避免使用此特定jar的代码并使其使用最新的jar。 I am using gradle as build tool. 我使用gradle作为构建工具。

Are you using maven? 你在用maven吗? I had a similar issue to use joda-time before and then solved using by <exclusion> tag. 我有一个类似的问题,以前使用joda-time,然后使用<exclusion>标签解决。 <exclusion> tag could be used to exclude the old jackson in your aws-java-sdk. <exclusion>标签可用于排除aws-java-sdk中的旧jackson。 Following is the way to solve the issue: 以下是解决问题的方法:

    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
        <version>1.11.113</version>
        <exclusions>
            <exclusion>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.8.8</version>
    </dependency>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM