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

Spring Boot测试报NoClassDefFoundError:AlterPartitionRequest$Builder缺失

问题描述

使用Spring Boot 2.7.18版本,搭配以下依赖:

artifact = "spring-kafka-test",
group = "org.springframework.kafka",
version = 2.9.3,

artifact = "scala-library",
group = "org.scala-lang",
version = "2.13.13"

运行测试时出现加载ApplicationContext失败的错误,根源为java.lang.NoClassDefFoundError: org/apache/kafka/common/requests/AlterPartitionRequest$Builder,相关堆栈信息如下:

Failed to load ApplicationContext
java.lang.IllegalStateException: 
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:98)
...
Caused by: java.lang.NoClassDefFoundError: org/apache/kafka/common/requests/AlterPartitionRequest$Builder
at kafka.server.KafkaServer.startup(KafkaServer.scala:320)
...

已尝试更换多个版本但未解决问题,寻求可行解决方案。

解决方案

这个错误的核心原因是Kafka客户端与Spring Kafka、Spring Boot版本不兼容,AlterPartitionRequest$Builder是特定Kafka客户端版本才包含的类,Spring Boot对生态依赖有严格的版本适配规则,以下是具体解决步骤:

  • 统一依赖版本,使用Spring Boot的依赖管理
    Spring Boot 2.7.18默认适配的Spring Kafka版本为2.9.x,对应的Kafka客户端版本是3.1.x。移除spring-kafka-test的手动版本声明,让Spring Boot自动管理版本,避免版本错位:

    artifact = "spring-kafka-test",
    group = "org.springframework.kafka"
    

    若需显式声明kafka-clients,需指定为3.1.x系列(如3.1.2),确保与Spring Boot版本匹配。

  • 校验Scala版本兼容性
    Spring Kafka 2.9.x适配Scala 2.13.x,你当前使用的2.13.13符合要求,但需确保测试用EmbeddedKafka依赖的Scala版本与scala-library一致,可通过依赖分析工具确认是否存在版本冲突。

  • 排查并排除依赖冲突
    执行依赖分析命令(Maven:mvn dependency:tree;Gradle:./gradlew dependencies),找出是否有其他依赖引入了不一致的kafka-clients或scala-library版本,通过排除规则移除冲突依赖:
    示例Gradle排除配置:

    configurations.all {
        exclude group: 'org.apache.kafka', module: 'kafka-clients', version: '冲突版本号'
    }
    
  • 清理缓存并重新构建
    删除本地依赖缓存(Maven:.m2/repository;Gradle:.gradle/caches),重新执行构建命令,确保所有依赖都加载为适配版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 09:35:01