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

Spring Boot连接Kafka时出现java.lang.NoSuchFieldError: CLIENT_ENDPOINT错误

Spring Boot连接Kafka时出现AWS STS版本冲突错误

错误日志

2024-02-21T14:02:03.419Z INFO 1 --- [customer-master-service] [ main] [ ] o.a.k.clients.consumer.KafkaConsumer : [Consumer clientId=consumer-customer-master-service-kafka-group-6, groupId=customer-master-service-kafka-group] Subscribed to topic(s): CAS_CUSTOMER_UPDATE
2024-02-21T14:02:03.461Z INFO 1 --- [customer-master-service] [ main] [ ] tomerMasterServiceApplicationApplication : Started CustomerMasterServiceApplicationApplication in 22.136 seconds (process running for 23.454)
2024-02-21T14:02:04.282Z ERROR 1 --- [customer-master-service] [ntainer#0-0-C-1] [ ] o.s.k.l.KafkaMessageListenerContainer : Stopping container due to an Error
2024-02-21T14:02:04.285170248Z java.lang.NoSuchFieldError: CLIENT_ENDPOINT
at com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient.executeAssumeRoleWithWebIdentity(AWSSecurityTokenServiceClient.java:994) ~[aws-java-sdk-sts-1.11.986.jar!/:na] 
2024-02-21T14:02:04.285184208Z at com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient.assumeRoleWithWebIdentity(AWSSecurityTokenServiceClient.java:976) ~[aws-java-sdk-sts-1.11.986.jar!/:na]
at com.amazonaws.auth.STSAssumeRoleWithWebIdentitySessionCredentialsProvider.newSession(STSAssumeRoleWithWebIdentitySessionCredentialsProvider.java:149) ~[aws-java-sdk-sts-1.11.986.jar!/:na]
at com.amazonaws.auth.STSAssumeRoleWithWebIdentitySessionCredentialsProvider.access$000(STSAssumeRoleWithWebIdentitySessionCredentialsProvider.java:40) ~[aws-java-sdk-sts-1.11.986.jar!/:na]
at com.amazonaws.auth.STSAssumeRoleWithWebIdentitySessionCredentialsProvider$1.call(STSAssumeRoleWithWebIdentitySessionCredentialsProvider.java:65) ~[aws-java-sdk-sts-1.11.986.jar!/:na]

问题原因

该错误由AWS SDK模块版本不兼容导致:aws-java-sdk-sts模块尝试调用的CLIENT_ENDPOINT字段,在依赖的AWS核心模块(如aws-java-sdk-core)中不存在,说明两者版本不一致。

解决方案

  • 统一AWS SDK版本:确保所有aws-java-sdk-*开头的依赖使用完全相同的版本,比如将aws-java-sdk-sts和aws-java-sdk-core都指定为1.11.986或同一新版本。
  • 排查并排除依赖冲突:
    • 用依赖分析工具查看依赖树:Maven执行mvn dependency:tree,Gradle执行gradle dependencies,找出引入不同版本AWS SDK的依赖项。
    • 对冲突依赖进行排除,例如在pom.xml中排除旧版本的核心模块:
      <dependency>
          <groupId>com.amazonaws</groupId>
          <artifactId>aws-java-sdk-sts</artifactId>
          <version>1.11.986</version>
          <exclusions>
              <exclusion>
                  <groupId>com.amazonaws</groupId>
                  <artifactId>aws-java-sdk-core</artifactId>
              </exclusion>
          </exclusions>
      </dependency>
      
  • 迁移到AWS SDK v2:考虑升级到AWS SDK for Java 2.x,它采用模块化设计,依赖管理更严谨,能从根源避免这类版本冲突问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 13:33:27