You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AWS SES发送邮件时出现依赖类找不到错误(Java环境)

解决AWS SDK v2 NoClassDefFoundError: AwsCredentialsProvider 问题

错误原因

java.lang.NoClassDefFoundError: software/amazon/awssdk/auth/credentials/AwsCredentialsProvider 说明运行环境中缺少AWS SDK v2核心认证模块的依赖,或者依赖包未被正确加载到类路径中。

解决方案

1. 引入完整的AWS SDK v2依赖

如果使用Maven,在pom.xml中添加以下依赖(版本需保持一致,建议使用最新稳定版):

<!-- AWS SDK 核心认证模块 -->
<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>auth</artifactId>
    <version>2.25.0</version> <!-- 替换为实际使用的版本 -->
</dependency>
<!-- STS 模块(用于角色假设) -->
<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>sts</artifactId>
    <version>2.25.0</version>
</dependency>
<!-- SES 模块(用于发送邮件) -->
<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>ses</artifactId>
    <version>2.25.0</version>
</dependency>
<!-- 可选:使用ProfileCredentialsProvider时需要的凭证模块 -->
<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>credentials</artifactId>
    <version>2.25.0</version>
</dependency>

如果使用Gradle,在build.gradle中添加:

implementation 'software.amazon.awssdk:auth:2.25.0'
implementation 'software.amazon.awssdk:sts:2.25.0'
implementation 'software.amazon.awssdk:ses:2.25.0'
implementation 'software.amazon.awssdk:credentials:2.25.0'

2. 统一依赖版本

所有AWS SDK相关依赖的版本必须保持一致,避免因版本差异导致类结构不兼容。可通过Maven的dependencyManagement或Gradle的版本变量统一管理版本。

3. 部署环境类路径配置

从日志中的org.apache.synapse可判断部署环境为WSO2相关平台:

  • 将所有依赖的AWS SDK JAR包复制到WSO2的repository/components/lib目录(或项目专属lib目录)
  • 重启WSO2服务器,确保新依赖包被加载到类路径中

代码优化建议(可选)

  • 代码中使用的ProfileCredentialsProvider.create()依赖本地~/.aws/credentials文件,服务器环境下可能无法正常工作,建议改用环境变量、IAM角色(部署在AWS上时)等更适配服务器的凭证提供方式。
  • 建议使用try-with-resources语法关闭AWS客户端,避免资源泄漏:
try (StsClient stsClient = StsClient.builder()
        .region(region)
        .credentialsProvider(ProfileCredentialsProvider.create())
        .build()) {
    // 角色假设及后续逻辑
}

内容的提问来源于stack exchange,提问作者Meena

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 17:40:38