Apache kafka 使用kafka使用Spring cloud stream创建单元测试时出错
我不知道如何使用卡夫卡做一个样本测试,我试图遵循spring指南,但没有成功 有人能帮我吗 ZZZZZZZZZ z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z zApache kafka 使用kafka使用Spring cloud stream创建单元测试时出错,apache-kafka,spring-cloud-stream,Apache Kafka,Spring Cloud Stream,我不知道如何使用卡夫卡做一个样本测试,我试图遵循spring指南,但没有成功 有人能帮我吗 ZZZZZZZZZ z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z z @RunWith(SpringRunner.class) @SpringBootTest @DirtiesContext public class Enr
@RunWith(SpringRunner.class)
@SpringBootTest
@DirtiesContext
public class EnrollSenderTest {
@Autowired
public EnrollSender producer;
@Autowired
private BinderFactory<MessageChannel> binderFactory;
@Autowired
private MessageCollector messageCollector;
@SuppressWarnings("unchecked")
@Test
public void test() {
Message<String> message = new GenericMessage<>("hello");
producer.sendEnroll(message);
Message<String> received = (Message<String>) messageCollector.forChannel(producer.getOutput()).poll();
assertThat(received.getPayload(), equalTo("hello"));
}
}
}
但给出了以下错误:
java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'messageCollector' defined in class path resource [org/springframework/cloud/stream/test/binder/TestSupportBinderAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.stream.test.binder.MessageCollector]: Factory method 'messageCollector' threw exception; nested exception is java.lang.NoSuchMethodError: org.springframework.cloud.stream.binder.BinderFactory.getBinder(Ljava/lang/String;Ljava/lang/Class;)Lorg/springframework/cloud/stream/binder/Binder;
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.stream.test.binder.MessageCollector]: Factory method 'messageCollector' threw exception; nested exception is java.lang.NoSuchMethodError: org.springframework.cloud.stream.binder.BinderFactory.getBinder(Ljava/lang/String;Ljava/lang/Class;)Lorg/springframework/cloud/stream/binder/Binder;
Caused by: java.lang.NoSuchMethodError: org.springframework.cloud.stream.binder.BinderFactory.getBinder(Ljava/lang/String;Ljava/lang/Class;)Lorg/springframework/cloud/stream/binder/Binder;
看起来您在类路径上设置了不匹配的依赖项(即,旧版本的SpringCloudStreamCore) 您可以通过删除
spring云流测试支持的版本来解决这个问题,因为Camden.SR4
BOM将提供正确的版本
此外,如果要使用嵌入式Kafka实例进行测试,可以在此处找到一个示例:
(该示例向您展示了如何使用嵌入式代理配置Kafka活页夹进行测试-它还展示了如何在同一个应用程序中使用两个不同的活页夹,但您可能并不关心这一点)。看起来您在类路径上有一个不匹配的依赖项集(即旧版本的Spring Cloud Stream core)
您可以通过删除spring云流测试支持的版本来解决这个问题,因为Camden.SR4
BOM将提供正确的版本
此外,如果要使用嵌入式Kafka实例进行测试,可以在此处找到一个示例:
(该示例向您展示了如何使用嵌入式代理配置Kafka活页夹进行测试-它还展示了如何在同一个应用程序中使用两个不同的活页夹,但您可能对此并不关心)。我的家属Marius Bogoevici
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:Camden.SR4"
}
}
compile 'org.springframework.cloud:spring-cloud-starter-stream-kafka'
compile group: 'org.springframework.cloud', name: 'spring-cloud-stream-test-support', version: '1.1.1.RELEASE'
马吕斯·博戈维奇,我的家属
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:Camden.SR4"
}
}
compile 'org.springframework.cloud:spring-cloud-starter-stream-kafka'
compile group: 'org.springframework.cloud', name: 'spring-cloud-stream-test-support', version: '1.1.1.RELEASE'
这是因为上文马吕斯指出的不兼容版本
您可能需要具有兼容版本的Spring Cloud Stream和Spring Cloud Stream测试支持的Camden.SR5
,或者具有Spring Cloud Stream测试支持版本1.1.0.RELEASE
的Camden.SR4
是介于Spring Cloud Steram的1.1.0.发行版
和1.1.1.发行版
之间的变化:这是因为上文马吕斯指出的不兼容版本
您可能需要具有兼容版本的Spring Cloud Stream和Spring Cloud Stream测试支持的Camden.SR5
,或者具有Spring Cloud Stream测试支持版本1.1.0.RELEASE
的Camden.SR4
是介于Spring Cloud Steram的1.1.0.RELEASE
和1.1.1.RELEASE
之间的更改:dependencManagement{imports{mavenBom“org.springframework.Cloud:Spring Cloud dependencies:Camden.SR4}编译'org.springframework.cloud:springcloudstarterstreamkafka'编译组:'org.springframework.cloud',名称:'springcloudstreamtestsupport',版本:'1.1.1.RELEASE'dependencyManagement{imports{mavenBom“org.springframework.cloud:springcloud dependences:Camden.SR4'}编译'org.springframework.cloud:spring cloud starter stream kafka'编译组:'org.springframework.cloud',名称:'spring cloud stream test support',版本:'1.1.1.RELEASE'修订版Ilayaperumal Gopinathan谢谢,我能够添加第二个参数,但错误保持不变。您可以共享当前依赖项和异常stacktrace吗?修订版Ilayaperumal Gopinathan谢谢,我可以添加第二个参数,但错误保持不变。您可以共享当前依赖项和异常stacktrace吗?