我已经成功地使用了一个方法,该方法用
@RabbitListener
注释。
注册的
Jackson2JsonMessageConverter
bean命名
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
在
@RabbitLisener
批注
containerFactory
属性,但我仍然得到相同的错误。
我不知道为什么
SimpleMessageConverter
在这种情况下,它是从哪里来的。
如何重写正在用于转换新返回类型的消息转换器?
谢谢!