春季整合5.1.1 enrichHeaders等效

问题描述 投票:0回答:1

下面的代码在1.2.1版本弹簧集成的Java-DSL的拨回

IntegrationFlows.from(inMessageChannel())//
                    .enrichHeaders(
                            c -> c.<InMessage>headerFunction(HEADER_IN_MESSAGE_ID,
                                    (message) -> message.getPayload().getInMessage().getId())//
                                    .<InMessage>headerFunction(HEADER_ORIGINAL_MESSAGE_ID,
                                            (message) -> message.getPayload().getInMessage().getMessageId()),
                            c -> c.poller(Pollers.fixedDelay(100)//
                                    .transactional(platformTransactionManager)//
                                    .errorChannel(errorChannel())))//
                    .handle(...)

细节:inMessageChannel()是一个轮询的信道

errorChannel()是SubscribableChannel

由于enrichHeaders()功能已经改变了,我找不到等效代码在5.1.1版本(弹簧集成芯)编写。虽然尝试不同的方法(除其他外,呼吁enrichHeaders每进行一次消费或使用电桥法)我得到以下异常:

java.lang.IllegalArgumentException: A poller should not be specified for endpoint 'myFlow.org.springframework.integration.config.ConsumerEndpointFactoryBean#1', since 'myFlow.channel#0' is a SubscribableChannel (not pollable).

如果我理解正确的1.2.1代码,轮询添加到inMessageChannel(),在新的版本,它试图将轮询添加到errorChannel(),这是不允许的。

有任何想法吗 ?谢谢 !

PS:很明显我在春天集成有适应一些代码初学者:)

spring-integration
1个回答
1
投票

与版本5.0开始,这enrichHeaders()真的被改变。我们所做的只是一个不Consumers的合并。因此,目前需要配置它是这样的:

        .enrichHeaders(
                        c -> c.<InMessage>headerFunction(HEADER_IN_MESSAGE_ID,
                                (message) -> message.getPayload().getInMessage().getId())//
                                .<InMessage>headerFunction(HEADER_ORIGINAL_MESSAGE_ID,
                                        (message) -> message.getPayload().getInMessage().getMessageId())
                                .poller(Pollers.fixedDelay(100)//
                                        .transactional(platformTransactionManager)//
                                        .errorChannel(errorChannel())))//

请参阅迁移指南详细信息:https://github.com/spring-projects/spring-integration/wiki/Spring-Integration-4.3-to-5.0-Migration-Guide#java-dsl-breaking-changes

© www.soinside.com 2019 - 2024. All rights reserved.