我整个星期都在玩春天的合同。我能够使用Spring Cloud流进行消息传递。
创建生产者和消费者应用程序。我正在尝试重新设计生产者端以使用ActiveMQ(带有虚拟主题)。我想我快到了。我已经编写了自己的留言器,并将其注入了我的测试的基类。现在我得到了:
测试运行:1,失败:0,错误:1,跳过:0,时间过去:2.535 sec<<<<失败! - in org.springframework.cloud.colloud.verifier.tests.someconsumer.messagingtest validate_invitecontract(org.springframework.cloud.cloud.contract.verifier.tests.someconsumer.messagingtest)时间:0.802 sec<<<<<错误! java.lang.classcastException:org.apache.activemq.command.activemqtextmessage无法将其施加到org.springframework.messaging.message.message at org.springframework.cloud.colloud.verifier.messaging.Stream.ContractVerifierHelper.Convert(ContractVerifierStreamAutoconFiguration.java:59) atorg.springframework.cloud.colloud.verifier.messaging.internal.contractverifiermessaging.receive(ContractVerifierMessaging.java:40) at org.springframework.cloud.contract.verifier.tests.someconsumer.messagingtest.validate_invitecontract(missagingTest.java:27)
我可以从日志文件中分辨出测试消息正在发送,并且我的自定义MessageVerifier正在选择该消息。我想念什么步骤?
如果我像这样定义了我的留言词:
公共类ConsumerMessageVerifier实现Message Verifier<ActiveMQTextMessage>
然后解决ClassCastException,但导致其他问题"应用程序无法启动"错误:
描述: org.springframework.cloud.cloud.cloud.verifier.messaging.Messaging.ContractVerififierIntegrationConfiguration中的方法0的参数0 contracterverifiermessing需要一个org.springframework.cloud.cloud.cloud.contract.contract.verifier.messaging.messaging.message.message.messageverifier',都需要一个bean。 -BEAN方法" ContractverifiermessageExchange"未加载,因为@ConditionAlonClass找不到必需的类'org.springframework.amqp.rabbit.core.core.rabbittemplate' -bean方法'ContractverifiermessageExchange'未加载,因为@ConditionAlonClass找不到必需的类'org.apache.camel.message' -bean方法'ContractVerifierMessageExchange'未加载,因为@ConditionAlonProperty(StubRunner.Stream.Stream.Enabled = true)在属性'stubrunner.stream.stream.enabled'
中找到了不同的值
所以,我不确定那是正确的路径。所以我的问题是:
我应该在上述内容中限定消息佛利符吗?
如果是这样,则需要采取什么步骤来解决"应用程序无法启动"错误?
谢谢!
MessageVerifier
需要键入。您还需要ContractVerifierMessaging
。您可以查看弹簧云合同软件包:org.springframework.cloud.contract.verifier.messaging.amqp
,org.springframework.cloud.contract.verifier.messaging.stream
,org.springframework.cloud.contract.verifier.messaging.camel
或org.springframework.cloud.contract.verifier.messaging.integration
的样本。