使用ActiveMQ中的Spring Cloud Contract MessageVerifier中的ClassCast



我整个星期都在玩春天的合同。我能够使用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'

中找到了不同的值

所以,我不确定那是正确的路径。所以我的问题是:

  1. 我应该在上述内容中限定消息佛利符吗?

  2. 如果是这样,则需要采取什么步骤来解决"应用程序无法启动"错误?

谢谢!

MessageVerifier需要键入。您还需要ContractVerifierMessaging。您可以查看弹簧云合同软件包:org.springframework.cloud.contract.verifier.messaging.amqporg.springframework.cloud.contract.verifier.messaging.stream‌​org.springframework.cloud.contract.verifier.messaging.camelorg.springframework.cloud.contract.verifier.messaging.integr‌​ation的样本。

最新更新