我一直在成功使用一种方法,该方法返回带有@RabbitListener
批注的业务对象。
名为Jackson2JsonMessageConverter
的注册messageConverter
bean启动,并将输入的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
批注的@RabbitLisener
属性中显式引用我的containerFactory
,但是仍然遇到相同的错误。
我不确定在这种情况下为什么要踢SimpleMessageConverter
,以及它来自何处。
如何覆盖用于转换新返回类型的消息转换器?
谢谢!