【问题标题】:Spring Cloud Config with AWS Java SDK 2.0带有 AWS Java SDK 2.0 的 Spring Cloud Config
【发布时间】:2020-03-17 22:22:33
【问题描述】:

我正在尝试关注此tutorial,但我使用的是 AWS Java SDK 2。但由于缺少来自 1.X 版本的 SDK 的类,它失败了。

java.lang.NoClassDefFoundError: com/amazonaws/auth/AWSCredentials
    at com.xxx.cloud.aws.structure.StructureTest.getRepositories(StructureTest.java:244)
Caused by: java.lang.ClassNotFoundException: com.amazonaws.auth.AWSCredentials
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 38 more

关于如何使其适用于 2.X SDK 的任何提示?

【问题讨论】:

    标签: java amazon-web-services aws-sdk


    【解决方案1】:

    SDK v1 和 v2 之间存在重大(重大)变化。 v2 不是向后兼容的,这意味着如果不对代码进行重大更改和重构,v1-examples 将无法在 v2 上运行。 即使使用 migration guide,也需要一些 AWS 经验才能完成。

    v2 目前是开发者预览版(即使它已经相当稳定)。 v1 仍然是正式的生产版本,即使 v2 的第一个版本到来,亚马逊也会在更长时间内得到全面支持。

    这表示我建议使用 v1 来完成教程。一旦您开始为 AWS 编码,您就会发现在 v1 或 v2 中表达自己的想法很容易(因为这两个版本在功能上是等效的 afaik)。

    【讨论】:

    • 切换到 v 2,因为本教程对我不起作用。我能够将该类转换为 AWS v2,但仍然得到相同的结果。
    【解决方案2】:

    我从 GitHub 打开项目,从 gradle 文件中,我认为它们丢失了:

    编译组:'com.amazonaws',名称:'aws-java-sdk',版本:'X'

    其中“X”是您的目标版本。

    【讨论】:

    • 可能是这样,但答案仍然是 2.X SDK 之上的版本。
    • 好吧,忽略版本,我只是想指出缺少依赖项。我将编辑我的答案。如果有帮助,请投票。
    猜你喜欢
    • 2018-08-01
    • 2020-12-09
    • 2018-01-09
    • 2016-02-18
    • 2019-02-21
    • 2020-07-02
    • 2018-05-11
    • 2018-01-12
    • 2021-09-21
    相关资源
    最近更新 更多