spring-kakfa依赖管理之org/springframework/kafka/listener/CommonErrorHandler错误

问题

整个项目使用spring-boot2.6.8版本,使用gradle构建,在common模块指定了implementation 'org.springframework.kafka:spring-kafka:2.6.8'这个工程也都能运行(这正常发送kafka消息和接收消息),但是执行单元测试报错,报错信息如下:

java 复制代码
	... 86 more
Caused by: java.lang.NoClassDefFoundError: org/springframework/kafka/listener/CommonErrorHandler
	at java.base/java.lang.Class.getDeclaredFields0(Native Method)
	at java.base/java.lang.Class.privateGetDeclaredFields(Class.java:3297)
	at java.base/java.lang.Class.getDeclaredFields(Class.java:2371)
	at org.springframework.util.ReflectionUtils.getDeclaredFields(ReflectionUtils.java:738)
	... 101 more
Caused by: java.lang.ClassNotFoundException: org.springframework.kafka.listener.CommonErrorHandler
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
	... 105 more

解决办法:

现在直接上本人的解决办法,每个人遇见到问题可能不同,需要使用不同解决办法

在build.gradle中取消版本,直接石红

common模块中原先的内容(最开始的项目指定2.6.8版本)

java 复制代码
    implementation 'org.springframework.kafka:spring-kafka:2.6.8'

更新后的内容

java 复制代码
    implementation 'org.springframework.kafka:spring-kafka'
    testImplementation 'org.springframework.kafka:spring-kafka'

分析:

1, 这个项目使用的springboot 2.6.8版本,在总的build.gradle已经指定对应的依赖管理

java 复制代码
buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "org.springframework.boot:spring-boot-gradle-plugin:2.6.8"
    classpath "io.spring.gradle:dependency-management-plugin:1.0.11.RELEASE"
    classpath "com.netflix.nebula:gradle-lint-plugin:17.7.1"
  }
}

2, 查看springboot 2.6.8 中依赖的spring-kafka版本

可以发现其中是使用的spring-kafka 2.8.6

https://github.com/spring-projects/spring-boot/releases/tag/v2.6.8

https://docs.spring.io/spring-boot/docs/2.6.8/reference/html/dependency-versions.html#appendix.dependency-versions

https://github.com/spring-projects/spring-boot/blob/v2.6.8/spring-boot-project/spring-boot-dependencies/build.gradle

相关推荐
EXI-小洲7 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
2601_961901708 小时前
SpringBoot使用Nacos进行application.yml配置管理
java·spring boot·spring
何以解忧,唯有..9 小时前
LangChain 工具调用(Tool Calling)实战指南
java·前端·langchain
QQ_21696290969 小时前
【源码编号:project79475】SpringBoot校内二手交易平台:商品发布、分类检索、留言交流、订单管理全流程实战
java·spring boot·后端
前端 贾公子10 小时前
第09章:上下文与记忆 (2)
java·服务器·前端
2601_9622035110 小时前
Java进阶07集合(续)
java·开发语言
郑州光合科技余经理11 小时前
本地生活服务系统:模块边界与结算字段怎么拆
java·开发语言·前端·后端·系统架构·uni-app·php
专注仿真11 小时前
Spring AI 实现智能对话系统项目指南
数据结构·spring·机器学习
roman_日积跬步-终至千里11 小时前
【数据治理(6)】DataOps 不是调度工具,而是让数据产品长期可信的运行机制
java·服务器·网络
落魄大学生之流水线上谋生计11 小时前
LangGraph 基本用法指南
java·windows·python·langchain