Spring Integration Java DSL: как маршрутизировать с помощью метода channelMapping канал, имя которого находится в заголовках? - PullRequest
0 голосов
/ 12 ноября 2018

Как перенаправить с помощью метода channelMapping на канал, имя которого находится в заголовках? Так что, если я попробую это

    @Bean
    private IntegrationFlow postDataToChannelX() {
            return f -> f
            ...
               .<String, Boolean> route(s -> s.equals("[]"), m -> m
                    .channelMapping(false, "headers['channelName']")
                    .channleMapping(true, ...);
    }

приходит

Вызывается: org.springframework.messaging.core.DestinationResolutionException: не удалось найти MessageChannel с именем 'headers [' channelName ']' в BeanFactory .; Вложенное исключение - org.springframework.beans.factory.NoSuchBeanDefinitionException: недоступен компонент с именем 'headers [' channelName ']'

1 Ответ

0 голосов
/ 12 ноября 2018

Вы можете просто сделать так:

.route(Message.class, (m) -> m.getHeaders().get("channelName"))

Таким образом, вам вообще не нужно ничего отображать, поскольку вы переходите к целевому каналу непосредственно в функции маршрутизации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...