Пожалуйста, кто-нибудь может мне помочь с этой проблемой, я настроил свой ReceipientListRouter в соответствии с документацией:
@Bean
public IntegrationFlow routerFlow() {
return IntegrationFlows.from(CHANNEL_INPUT)
.routeToRecipients(r -> r
.applySequence(true)
.ignoreSendFailures(true)
.recipient(CHANNEL_OUTPUT_1)
.recipient(CHANNEL_OUTPUT_2)
.sendTimeout(1_234L))
.get();
}
@ServiceActivator(inputChannel = CHANNEL_OUTPUT_1, outputChannel = CHANNEL_END)
public Object foo(Message<?> message) {
message.gePayload();
// processing1() ...
}
@ServiceActivator(inputChannel = CHANNEL_OUTPUT_2, outputChannel = CHANNEL_END)
public Object bar(Message<?> message) {
message.gePayload();
// processing2() ...
}
Я ожидаю получить этот рабочий процесс:
CHANNEL_INPUT(payload-1) |----> CHANNEL_OUTPUT_1(payload-2)
|----> CHANNEL_OUTPUT_2(payload-3)
где полезная нагрузка- 2 на входе активатора foo равняется полезной нагрузке-1 и полезной нагрузке-3 на входе активатора бара равняется полезной нагрузке-1
Но фактический рабочий процесс это:
полезная нагрузка-2 на входе активатора foo равна полезной нагрузке-1, но полезная нагрузка-3 на входе активатора бара равна полезной нагрузке- 2 сообщение о выходе foo activator
it seems like this is the actual workflow
CHANNEL_INPUT(payload-1)----> CHANNEL_OUTPUT_1(payload-2)----> CHANNEL_OUTPUT_2(payload-3)
после отладки Я замечаю, что message.getHeader () не совпадают (на самом деле они содержат "sequenceNumber" "и" sequenceSize "), но для message.getPayload , как описано выше