Почему SpEL не работает в Spring Boot и Spring Cloud Stream @SendTo

68
1

Я создал следующий код и соответствующую конфигурацию. Поглощение сообщений отлично работает, но SpEL вообще не оценивается, поэтому создается новый Exchange с выражением как именем...

Глядя на мои версии @SendTo аннотация @SendTo ДОЛЖНА поддерживать такой вид выражения...

Что я делаю не так?

Я использую RabbitMQ и Spring Boot 1.4.3

@EnableBinding(CommandChannel.class)
public class CommandSink {

private static final Logger LOGGER = LoggerFactory.getLogger(CommandSink.class);

@StreamListener(CommandChannel.INPUT)
@SendTo("!{request.messageProperties.headers['reply_to']}")
public String processCommand(@Payload String cmd, @Header("reply_to") String replyToQueue){
LOGGER.info("Got a {} command and I'll reply to {}", cmd, replyToQueue);
String result = "geil: " + cmd;
return result;
}
}

спросил(а) 2017-01-16T11:45:00+03:00 3 года, 8 месяцев назад
1
Решение
58

Что я делаю не так?

Ничего; в обработчике bean post нет кода для оценки выражения SpEL; значение представляет собой простое строковое значение для адресата (название канала).

Что побуждает вас поверить, что SpEL поддерживается там? У меня возникли проблемы с разбором этого...

Глядя на мои версии зависимостей, аннотация @SendTo ДОЛЖНА поддерживать такой вид выражения...

ответил(а) 2017-01-16T17:24:00+03:00 3 года, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема