gpt4 book ai didi

spring-cloud - 使用新版本 Chelsea.RC1 的 "condition paramter header"@StreamListener 时出错

转载 作者:行者123 更新时间:2023-12-04 03:56:07 34 4
gpt4 key购买 nike

我正在尝试使用事件过滤器来减少应用程序使用的主题数量,使用新版本的 spring 云流 (Chelsea.RC1) 中可用的新功能。正在创建具有正确 header 的消息,但是,检查队列中消息的内容,消息不包含 header ,仅包含带有有效负载的正文。

public void sendEnroll(EnrollCommand data) {

//MessageChannel
outputEnroll.send(MessageBuilder
.withPayload(data)
.setHeader("brand", "MASTERCARD")
.setHeader("operation", Operation.ENROLL).build());
}

消费者

@Service
@EnableBinding(Channel.class)
public class EnrollConsumer {

@Autowired
private EnrollService service;

@StreamListener(target = Channel.INPUT_ENROLL, condition = "headers['brand']=='MASTERCARD'")
public void enrollConsumer(@Payload String command){
System.out.println(command);
//service.enrollment(command);
}
}

在消费者服务中,它给出如下警告:

WARN -kafka-listener-1 o.s.c.s.b.DispatchingStreamListenerMessageHandler:62 - Cannot find a @StreamListener matching for message with id: 7baae934-7484-a7fd-91b0-ba906558bb13

最佳答案

您必须映射您的自定义 header :

spring.cloud.stream.kafka.binder.headers = brand,operation

该信息存在于 documentation 中.

关于spring-cloud - 使用新版本 Chelsea.RC1 的 "condition paramter header"@StreamListener 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42910265/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com