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

Sau*_*pta 3 amazon-web-services amazon-ses

我在使用 AWS SES 邮件发送示例时遇到以下错误?

"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)
"
Run Code Online (Sandbox Code Playgroud)

Fab*_*ath 6

问题:

我也面临同样的问题。原因是我为我的 aws 库使用了不同的人工制品版本:aws-java-sdk-core 和 aws-java-sdk-s3。

解决方案(Maven):

如果您使用 Maven,亚马逊建议使用 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>
Run Code Online (Sandbox Code Playgroud)

由于您已经在 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>
Run Code Online (Sandbox Code Playgroud)

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