当前位置: 首页 > 知识库问答 >
问题:

Spring云合约制作人无法发送消息

公冶伟
2023-03-14

我正在尝试将Spring Cloud合同合并到现有项目中。我在REST方面取得了一些成功,但我正在努力设置消息端。

到目前为止,我已经在producer上建立了一个契约,它确实在target/generated test sources/contracts中生成了一个测试。我还为测试设置了一个基类。

我无法克服这个错误:

2017-09-08 17:10:51.759错误 - --[]- [ 主]o.s.c.c.v.m.stream.StreamStubMessages:在尝试解析目标时发生异常。将假定名称[邀请]

组织。springframework。豆。工厂NoSuchBean定义异常:没有“org”类型的合格bean。springframework。云流动配置。ChannelBindingServiceProperties'可在org上获得。springframework。豆。工厂支持DefaultListableBeanFactory。org上的getBean(DefaultListableBeanFactory.java:353)。springframework。豆。工厂支持DefaultListableBeanFactory。org上的getBean(DefaultListableBeanFactory.java:340)。springframework。上下文支持AbstractApplicationContext。getBean(AbstractApplicationContext.java:1093)位于org。springframework。云合同验证者。信息。流动流媒体发送消息。resolvedDestination(StreamStubMessages.java:86)位于org。springframework。云合同验证者。信息。流动流媒体发送消息。在org上接收(StreamStubMessages.java:73)。springframework。云合同验证者。信息。流动流媒体发送消息。在org上接收(StreamStubMessages.java:110)。springframework。云合同验证者。信息。流动流媒体发送消息。在org上接收(StreamStubMessages.java:36)。springframework。云合同验证者。信息。内部的合同验证信息。在org上接收(ContractVerifierMessage.java:40)。springframework。云合同验证者。测验。电子邮件MessagingTest。验证受邀合同(MessagingTest.java:27)

后来呢

2017-09-08 17:10:51.759错误---[]-[main]o.s.c.c.v.m.stream。StreamStubMessages:尝试从名为[invests]的频道读取消息时发生异常

org.springframework.beans.factory.NoSuchBean定义异常:没有名为'邀请'的bean在org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean定义(DefaultListableBeanFactory.java:687)在org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBean定义(AbstractBeanFactory.java:1207)在org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284)在org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)

我在src/test/资源下的application.yml文件:

spring:cloud:stream:bindings:output:content-type:application/json-destination:invests

我有以下依赖项:

`
    <!-- 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 -->`

我梳理了文档,看了马辛的演讲,看了Spring云合同的样本,但我被卡住了。任何帮助都将不胜感激。

共有1个答案

凤高翰
2023-03-14

请使用释放列车。在发布序列中,我们知道没有无效的依赖项。

您没有@EnableBinding(Source.class)注释。这就是为什么流不知道如何绑定到输出通道。

如果查看Spring Cloud Contract示例,您会注意到主应用程序类上的这一行(https://github.com/spring-cloud-samples/spring-cloud-contract-samples/blob/master/producer/src/main/java/com/example/ProducerApplication.java#L9).在我将这一行添加到您的代码后,上下文启动,但测试失败,因为消息未发送。

 类似资料:
  • 我是斯卡拉和Kafka的新手,遇到了一些麻烦。 我正在尝试将scala kafka producer连接到安装在cloudera express服务器上的kafka服务器。我已经用这些指令在VMs中这样做过一次了,没有任何问题。 当我运行producer时,所需的主题被创建,但没有任何消息被发送,或者我是这样认为的。 Kafka制作人 当我执行run方法时,我看到“producer-send:#”

  • 我试图使用谷歌云计算引擎VM实例作为Kafka消费者。我发现虚拟机阻止了来自任何外部计算机的通信,我成功地设置了防火墙规则,从本地计算机访问虚拟机。 我能够在云虚拟机实例上创建和列出主题。但我无法收发Kafka主题的信息。它抛出超时异常。 我使用telnet检查端口是否打开,并获得了端口的转义序列(9092)。 当我尝试使用另一个云虚拟机实例实现相同的事情时,我能够执行所有kafka操作。(发送/

  • 如何使用新的Spring Cloud Stream Kafka功能模型发送消息? 不推荐的方式是这样的。 但是我如何以函数式风格发送消息呢? 应用yml公司 我会自动连接MessageChannel,但对于process、process-out-0、output或类似的东西,没有MessageChannel Bean。或者我可以用供应商Bean发送消息吗?谁能给我举个例子吗?谢谢!

  • 假设kafka消息生产者向一个主题发送一条事件消息。然后一个消费者处理这个事件消息。但是,这个消费者进程因为业务错误而抛出异常,所以他想让消息生产者知道它并再次怨恨。 有什么解决办法吗?

  • 我一直在玩春云契约。以下是我对工作流程到目前为止的理解。 在服务器端 编写合同(使用groovy或yaml) 自动生成测试(使用gradle插件) 设置基本类,用于为控制器进行适当的设置 运行自动生成的测试 将生成的存根jar文件发布到某个本地repo(包含内置的wiremock服务器,带有请求/响应) null