【问题标题】:AWS SES Service For sending mail using javaAWS SES 服务用于使用 java 发送邮件
【发布时间】:2019-03-25 11:26:17
【问题描述】:

我在使用 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)
"

【问题讨论】:

  • 请在此处包含完整代码,仅堆栈跟踪无济于事

标签: amazon-web-services amazon-ses


【解决方案1】:

问题:

我也遇到了同样的问题。 原因是我为我的 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>

由于您已经在 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】:

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

    【讨论】:

    • 感谢您的回复。是的,现在已经解决了。
    • 如果这是问题所在,请接受答案以帮助他人。
    【解决方案3】:

    即使我也有同样的问题:

    线程“主”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'
    

    【讨论】:

    • 就我而言,我已经从 java 8 升级到 java 11,之前我没有将 aws-java-sdk-core 指定为依赖项,添加正确的版本对我有帮助
    猜你喜欢
    • 2018-09-27
    • 2020-08-23
    • 2011-08-07
    • 2020-10-20
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多