Вам не хватает того факта, что transformer
- это тот тип конечной точки, который обрабатывает все сообщение как есть. И если вы создаете сообщение самостоятельно, оно не меняет его. Итак, с вашим MessageBuilder.withPayload(createItemProperty(getItemName, getItemId)).build();
вы просто пропустите важные заголовки деталей последовательности после разделителя. Следовательно, агрегатор после этого не знает, что делать с вашим сообщением, поскольку вы настраиваете его для стратегий корреляции по умолчанию, но вы не предоставляете соответствующие заголовки в сообщении.
Технически я не вижу причин для создайте там сообщение вручную: простого return createItemProperty(getItemName, getItemId);
должно хватить. И фреймворк возьмется за создание сообщения от вашего имени с соответствующим копированием заголовков сообщения запроса.
Если вы действительно все еще думаете, что вам нужно создать сообщение самостоятельно в этом преобразовании, тогда вам нужно подумать о copyHeaders()
на этом MessageBuilder
из сообщения запроса для переноса заголовков требуемых деталей последовательности.