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

AWS Java异常:KmsMasterKeyProvider源码与字节码不匹配及依赖问题

问题分析与解决方案

核心原因1:AWS SDK v2核心依赖缺失

java.lang.NoClassDefFoundError: software/amazon/awssdk/core/interceptor/ExecutionInterceptor 错误说明项目缺少AWS SDK v2的核心依赖包。aws-encryption-sdk-java的KmsMasterKeyProvider(基于SDK v2实现的版本)依赖AWS SDK v2的aws-sdk-core模块,而你当前仅引入了加密SDK本身,未显式添加该依赖。

解决办法:添加AWS SDK v2核心及KMS依赖

在Maven pom.xml中补充以下依赖:

<!-- AWS SDK v2核心依赖 -->
<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>aws-sdk-core</artifactId>
    <version>2.20.0</version> <!-- 版本需与加密SDK兼容,可查看加密SDK的pom.xml确认依赖版本 -->
</dependency>
<!-- AWS KMS SDK v2依赖 -->
<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>kms</artifactId>
    <version>2.20.0</version>
</dependency>

注意:版本号要和aws-encryption-sdk-java保持兼容,可通过加密SDK的pom.xml文件(Maven仓库可查)确认它依赖的AWS SDK v2版本,避免版本冲突。

核心原因2:IDE缓存与源码不匹配

IntelliJ IDEA提示“Library source does not match the bytecode for class KmsMasterKeyProvider”,通常是IDE缓存的源码包与实际引入的字节码版本不一致,或是Maven依赖下载不完整导致。

解决办法:

  • 清理Maven本地缓存:找到本地Maven仓库中com/amazonaws/aws-encryption-sdk-java目录,删除对应版本的文件夹,再执行mvn clean install -U强制更新依赖。
  • 刷新IDE Maven依赖:点击右侧Maven面板的「Reload All Maven Projects」按钮,或用快捷键Ctrl+Shift+O(Windows/Linux)/Cmd+Shift+O(Mac)重新导入。
  • 清除IDE缓存:依次点击「File」→「Invalidate Caches...」,选择「Invalidate and Restart」,重启IDE后重新加载项目。

额外检查:依赖冲突排查

若添加依赖后问题仍存在,可能是项目同时引入了AWS SDK v1和v2依赖导致版本冲突。执行mvn dependency:tree查看依赖树,排查是否有com.amazonaws:aws-java-sdk-*(SDK v1)和software.amazon.awssdk:*(SDK v2)的冲突,排除不需要的依赖版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 13:34:56