AWS Java SDK正在使用旧版的jackson jar [英] AWS Java SDK is taking old version of jackson jar

查看:391
本文介绍了AWS Java SDK正在使用旧版的jackson jar的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前,我正在努力在现有应用程序中添加AWS Java SDK,以执行与AWS云相关的操作。在导入aws java sdk以获取最新版本时,即1.1.1.113我遇到了运行时异常。在研究了异常之后,原因是java sdk使用了不赞成版本或者与jackson jar不兼容的版本。

Currently I am working to add AWS Java SDK in my existing application to perform operations related to AWS cloud. While importing the aws java sdk for latest version i.e.1.11.113 I am getting run time exception. After researching about exception the reason is java sdk using deprecated version or incompatible version for jackson jar.

sdk正在使用版本4.1的jackson jar,而所需的版本必须至少为5.即使我正在给最新的jackson jar但仍然是它参考了SDK中存在的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. 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:]

如何避免使用此特定jar的代码并使其使用最新的jar。我使用gradle作为构建工具。

How can I avoid code to use this particular jar and make it use latest jar . I am using gradle as build tool.

推荐答案

你在使用maven吗?我有一个类似的问题,以前使用joda-time,然后通过< exclusion> 标签解决。 < exclusion> 标记可用于排除aws-java-sdk中的旧jackson。以下是解决问题的方法:

Are you using maven? I had a similar issue to use joda-time before and then solved using by <exclusion> tag. <exclusion> tag could be used to exclude the old jackson in your aws-java-sdk. 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>

这篇关于AWS Java SDK正在使用旧版的jackson jar的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆