Я успешно использую метод, который возвращает мой бизнес-объект с аннотацией @RabbitListener
.
Зарегистрированный bean-компонент Jackson2JsonMessageConverter
с именем messageConverter
отлично преобразует входящее сообщение JSON в ожидаемый тип и возвращаемый бизнес-объект в JSON.
// This works!!
@RabbitListener(...)
@SendTo("#{responseDestination})
MyBusinessResponseObject handle(MyBusinessRequestObject request) {
...
...
...
}
Но теперь, когда я начинаю возвращать org.springframework.messageing.Message<MyBusinessResponseObject>
, я получаю исключения в журналах, говорящие: SimpleMessageConverter only supports String, byte[] and Serializable payloads, received: com.xxx.xxx.xxx.domain.MyBusinessResponseObject
// This DOESN'T work
@RabbitListener(...)
@SendTo("#{responseDestination})
Message<MyBusinessResponseObject> handle(MyBusinessRequestObject request) {
...
...
...
}
Я пробовал явно сослаться на мой SimpleRabbitListenerContainerFactory
в свойстве containerFactory
аннотации @RabbitLisener
, но все равно получаю ту же ошибку.
Я не уверен, почему в этом случае срабатывает SimpleMessageConverter
и откуда он исходит.
Как мне переопределить тот конвертер сообщений, который используется для преобразования моего нового типа возврата?
Спасибо!