首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试无法开始使用spring test (NoClassDefFoundError)

测试无法开始使用spring test (NoClassDefFoundError)
EN

Stack Overflow用户
提问于 2022-02-21 16:13:07
回答 1查看 1.1K关注 0票数 1

spring-kafka-test的帮助下,我正在测试一个使用卡夫卡制作人和听众的特性。

spring-kafkaspring-kafka-test都在使用2.8.2版本。

我的测试类使用@EmbeddedKafka注释,如下所示:

代码语言:javascript
复制
@SpringBootTest
@DirtiesContext
@EmbeddedKafka(partitions = 1, brokerProperties = { "listeners=PLAINTEXT://localhost:9092", "port=9092" })
class EmbeddedKafkaIntegrationTest {
    // Test cases
}

在运行测试时,我得到了以下堆栈跟踪:

代码语言:javascript
复制
Failed to resolve parameter [com.my-company.my-app.kafka.KafkaProducer kafkaProducer] in constructor [public com.my-company.my-app.kafka.DigitalKafkaListenerIT(com.my-company.my-app.kafka.KafkaProducer,com.my-company.my-app.config.ApplicationProperties)]: Failed to load ApplicationContext
org.junit.jupiter.api.extension.ParameterResolutionException: Failed to resolve parameter [com.my-company.my-app.kafka.KafkaProducer kafkaProducer] in constructor [public com.my-company.my-app.kafka.DigitalKafkaListenerIT(com.my-company.my-app.kafka.KafkaProducer,com.my-company.my-app.config.ApplicationProperties)]: Failed to load ApplicationContext
    at org.junit.jupiter.engine.execution.ExecutableInvoker.resolveParameter(ExecutableInvoker.java:239)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.IllegalStateException: Failed to load ApplicationContext
    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132)
    ... 77 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'embeddedKafka': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: com/codahale/metrics/Reservoir
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804)
    ... 81 more
Caused by: java.lang.NoClassDefFoundError: com/codahale/metrics/Reservoir
    at org.apache.zookeeper.metrics.impl.DefaultMetricsProvider$DefaultMetricsContext.lambda$getSummary$2(DefaultMetricsProvider.java:126)
    ... 90 more
Caused by: java.lang.ClassNotFoundException: com.codahale.metrics.Reservoir
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 105 more
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-21 16:13:07

这可能是2.8.2版本 of spring-kafka-test中的一个bug。

切换到最新的小型2.7.10版本解决了这个问题,尽管spring-kafka还在2.8.2上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71209571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档