Spring非注解方式创建Kafka监听器启动时抛出NoSuchMethodError
问题解决:Spring非注解创建Kafka监听器启动报错NoSuchMethodError
这是Spring版本不兼容引发的问题,具体原因如下:org.springframework.util.Assert.isTrue(ZLjava/util/function/Supplier;)V这个重载方法是Spring Core 5.2及以上版本才新增的。你的项目要么是Spring Kafka依赖的Spring Core版本高于当前项目使用的版本,要么是项目引入的Spring Core版本过低,导致运行时找不到该方法。
解决步骤:
- 检查项目依赖配置(Maven的pom.xml或Gradle的build.gradle),确保Spring Core与Spring Kafka的版本保持一致
- 若使用Spring Boot,推荐通过父依赖统一管理版本,避免冲突:
引入Spring Kafka依赖时无需指定版本,会自动继承父依赖的版本:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>你的Spring Boot版本(如2.7.8)</version> <relativePath/> </parent><dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency> - 若未使用Spring Boot,需手动匹配版本:比如Spring Kafka 2.8.x对应Spring Core 5.3.x,Spring Kafka 3.0.x对应Spring Core 6.0.x,根据需求选择对应版本组合
- 若使用Spring Boot,推荐通过父依赖统一管理版本,避免冲突:
- 清理依赖缓存,确保拉取正确版本:
- Maven执行命令:
mvn clean install -U - Gradle执行命令:
gradle clean build --refresh-dependencies
- Maven执行命令:
内容的提问来源于stack exchange,提问作者Sangita Rath
相关产品推荐
相关产品推荐

