Spring Boot:2.0.3.RELEASE
org.apache.kafka.kafka-streams:1.0.0
org.apache.kafka.kafka-客户端:1.0.0
org.springframwork.kafka:spring-kafka-test:2.1.7.RELEASE
我有一个使用Kafka的Spring Boot应用程序。我正在尝试按照https://blog.mimacom.com/testing-apache-kafka-with-spring-boot/创建集成测试。
当我添加@EmbeddedKafka批注时,运行时会出现错误
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'kafkaEmbedded': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/apache/kafka/common/record/RecordFormat
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1699) ~[spring-beans-5.0.8.RELEASE.jar:5.0.8.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:407) ~[spring-beans-5.0.8.RELEASE.jar:5.0.8.RELEASE]
有一些关于此错误的google结果,但是它们都在旧的kafka客户端版本上,应该在我使用的版本中进行修复。
这看起来像是版本不匹配,但是我不清楚我应该给我什么。
答案 0 :(得分:1)
如注释中所示,此类错误始终是由于库版本不兼容引起的。以下组合有效
spring boot: 2.1
spring-streams/spring-client: 2.0.1 (Using 2.2.0 creates some compatibility issues)
spring-kafka: 2.2.5.RELEASE