AWS SES服务用于使用Java发送邮件

时间:2018-12-01 10:52:12

标签: amazon-web-services amazon-ses

在使用AWS SES Mail发送示例时,我面临以下错误吗?

"Exception in thread "main" java.lang.NoSuchMethodError: com.amazonaws.client.AwsSyncClientParams.getAdvancedConfig()Lcom/amazonaws/client/builder/AdvancedConfig;
    at com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient.<init>(AmazonSimpleEmailServiceClient.java:277)
    at com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient.<init>(AmazonSimpleEmailServiceClient.java:261)
    at com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder.build(AmazonSimpleEmailServiceClientBuilder.java:61)
    at com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder.build(AmazonSimpleEmailServiceClientBuilder.java:27)
    at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46)
    at saurabh.aws.learning.awsLearning.SendMailService.main(SendMailService.java:50)
"

3 个答案:

答案 0 :(得分:1)

我自己遇到了这个错误。这很可能是由工件的不同版本引起的,例如:aws-java-sdk-ses和aws-java-sdk-core。尝试在pom.xml中为上述两个版本使用相同的版本(如果使用的是maven)。如果这样不起作用,您可以共享pom.xml吗?

答案 1 :(得分:1)

问题:

我也面临着同样的问题。 原因是我在aws库中使用了不同的工件版本:aws-java-sdk-core和aws-java-sdk-s3。

解决方案(Maven):

如果您使用的是Maven,Amazon建议使用BOM依赖项管理。这样,您可以确保指定的模块使用相同版本的SDK,并且彼此兼容。

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

并且您已经在BOM表中声明了SDK版本,因此无需为每个组件指定版本号。像这样:

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

来源:https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-project-maven.html#configuring-maven-individual-components

答案 2 :(得分:0)

即使我遇到了同样的问题:

  

线程“主”中的异常java.lang.NoSuchMethodError:   com.amazonaws.client.AwsSyncClientParams.getAdvancedConfig()Lcom / amazonaws / client / builder / AdvancedConfig;

我尝试从Java配置DynamoDB的自动缩放,但遇到了这个问题。

解决方案:

我们需要确保aws sdk版本与特定的服务版本匹配。 遇到异常时,我使用了以下依赖项,

compile group: 'com.amazonaws', name: 'aws-java-sdk-applicationautoscaling', version: '1.11.500'
compile group: 'com.amazonaws', name: 'aws-java-sdk-core', version: '1.11.123'

更改为相同版本后,问题已解决

compile group: 'com.amazonaws', name: 'aws-java-sdk-applicationautoscaling', version: '1.11.500'
compile group: 'com.amazonaws', name: 'aws-java-sdk-core', version: '1.11.500'