首页 > 解决方案 > AWS RDS 给出 java.lang.NoSuchMethodError

问题描述

我在连接到 AWS RDS 时遇到以下问题。

我尝试更改 maven 依赖项(从 1.11.458 及更高版本),但在创建AWSRdsClient.

Exception in thread "main" java.lang.NoSuchMethodError: com.amazonaws.client.AwsSyncClientParams.getAdvancedConfig()Lcom/amazonaws/client/builder/AdvancedConfig;
    at com.amazonaws.services.rds.AmazonRDSClient.<init>(AmazonRDSClient.java:334)
    at com.amazonaws.services.rds.AmazonRDSClient.<init>(AmazonRDSClient.java:318)
    at com.amazonaws.services.rds.AmazonRDSClientBuilder.build(AmazonRDSClientBuilder.java:61)
    at com.amazonaws.services.rds.AmazonRDSClientBuilder.build(AmazonRDSClientBuilder.java:27)
    at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46)
    at com.cloudlytics.war.rules.RDS.main(RDS.java:35)

标签: amazon-web-servicesmavenamazon-rds

解决方案


这对我有用:来自https://github.com/aws/aws-sdk-java

将此添加到 POM 的 dependencyManagement 部分:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-bom</artifactId>
      <version>1.11.549</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

然后使用 SDK Maven 模块而不指定版本:

<dependencies>
  <dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-ec2</artifactId>
  </dependency>
  <dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-s3</artifactId>
  </dependency>
  <dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-dynamodb</artifactId>
  </dependency>
</dependencies>

推荐阅读