我正在尝试将 Spring Cloud Contract 合并到现有项目中。我在 REST 方面取得了一些成功,但我在努力设置消息传递方面。
到目前为止,我已经在生产者身上建立了一个合同,它确实在目标/生成的测试源/合同中产生了一个测试。我还为测试设置了一个基类。
我无法克服这个错误:
2017-09-08 17:10:51.759 错误 - --[]- [main] osccvmstream.StreamStubMessages:尝试解析目标时发生异常。将采用名称[邀请]
org.springframework.beans.factory.NoSuchBeanDefinitionException:在 org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:353) 上没有“org.springframework.cloud.stream.config.ChannelBindingServiceProperties”类型的合格 bean在 org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:340) 在 org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1093) 在 org.springframework.cloud.contract.verifier .messaging.stream.StreamStubMessages.resolvedDestination(StreamStubMessages.java:86) 在 org.springframework.cloud.contract.verifier.messaging.stream.StreamStubMessages.receive(StreamStubMessages.java:73) 在 org.springframework.cloud.contract.verifier.messaging.stream.StreamStubMessages.receive(StreamStubMessages.java:110) at org.springframework.cloud.contract.verifier.messaging.stream.StreamStubMessages.receive(StreamStubMessages.java:36) at org. springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging.receive(ContractVerifierMessaging.java:40) at org.springframework.cloud.contract.verifier.tests.email.MessagingTest.validate_invitedContract(MessagingTest.java:27)在 org.springframework.cloud.contract.verifier.tests.email.MessagingTest.validate_invitedContract(MessagingTest.java:27) 处接收(ContractVerifierMessaging.java:40)在 org.springframework.cloud.contract.verifier.tests.email.MessagingTest.validate_invitedContract(MessagingTest.java:27) 处接收(ContractVerifierMessaging.java:40)
然后
2017-09-08 17:10:51.759 错误 - --[]- [main] osccvmstream.StreamStubMessages:尝试从名为 [invites] 的频道读取消息时发生异常
org.springframework.beans.factory.NoSuchBeanDefinitionException:在 org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:687) 在 org.springframework.beans.factory.support.AbstractBeanFactory 中没有名为“邀请”的 bean .getMergedLocalBeanDefinition(AbstractBeanFactory.java:1207) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202 )
我在 src/test/resources 下的 application.yml 文件:
spring:
cloud:
stream:
bindings:
output:
content-type: application/json
destination: invites
我有以下依赖项:
`
<!-- Spring Cloud Contract Deps -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream</artifactId>
<version>1.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-contract-verifier</artifactId>
<version>1.1.3.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-test-support</artifactId>
<version>1.2.2.RELEASE</version>
<scope>test</scope>
</dependency>
<!-- END SCC Deps -->`
我梳理了文档,观看了 Marcin 的演讲并查看了 Spring Cloud Contract 的示例,但我被卡住了。任何帮助将不胜感激。