apache-kafka - Spring 集成中的 MutableMessageBuilderFactory
问题描述
我有一个春季云流消费者从 Kafka 获取消息。我想修改消息头,但目前我收到的消息是GenericMessage
.
我从 spring integration core中看到了这篇文章和这段代码,所以我在我的配置中添加了一个类型的 bean,但我仍然收到消息为. 实际上,创建 bean 的代码甚至似乎都没有被调用,in类被多次调用并且每次都返回。MutableMessageBuilderFactory
GenericMessage
getMessageBuilderFactory(BeanFactory beanFactory)
IntegrationUtils
beanFactory.getBean("messageBuilderFactory", MessageBuilderFactory.class)
DefaultMessageBuilderFactory
可能是什么问题导致我定义为 bean 的工厂无法工作并且消息不断出现GenericMessage
?
春季版本:
- 弹簧启动:1.5.21
- 弹簧集成:4.3.12
解决方案
消息是不可变的,这有很多原因,但这超出了这个问题的范围。您可以做的是在您的处理程序中创建一个新消息并返回它。如果您想复制大部分以前的消息,然后修改标题,您可以这样做:
Message resultMessage = MessageBuilder.fromMessage(sourceMessage).setHeader("myExistingHeader", "foo").build();
推荐阅读
- python - Python 中的情感分析 - TextBlob
- module - 如何将大模式匹配拆分为多个模块?
- javascript - NgRx Reducer props 值始终未定义
- javascript - LEAFLET + map.fitBounds
- javascript - 单独的 html 文件中的导航栏,并在多个 html 文件/页面中使用它
- scala - io.fabric8.kubernetes.client.KubernetesClientException: 操作: [create] for kind: [Pod] with name: [null] in namespace: [spark-dev] failed
- npm - StencilJS Web 组件中的 Aframe
- c++ - 了解键盘 LED 状态
- python-3.x - python用单个逗号替换任意数量的空格
- c++ - 在此代码中输入 10000 时,我没有得到预期的输出。问题是关于将十进制转换为二进制