如何将来自RabbitMQ的JSON消息转换为Java对象?

时间:2013-06-19 13:06:36

标签: java json spring rabbitmq spring-rabbit

我有两个独立的Java应用程序,我需要使用spring-rabbit在RabbitMQ之间发送消息。在作为生产者的应用程序中,我使用JsonMessageConverter作为我的RabbitTemplate的消息转换器,以便在将Java对象发送到队列之前将其转换为JSON消息。

在另一个应用程序中,我想将JSON消息转换回Java对象。我尝试将SimpleMessageListenerContainer与自定义MessageListener一起使用,我可以从队列中获取Message,但我不知道将它们从JSON转换回Java对象。

如何在从RabbitMQ异步使用消息时使用JsonMessageConverter

1 个答案:

答案 0 :(得分:5)

我最终使用带有自定义委托对象的MessageListenerAdapterJsonMessageConverter作为MessageConverter。像这样:

SimpleMessageListenerContainer listenerContainer = new SimpleMessageListenerContainer();
listenerContainer.setMessageListener(new MessageListenerAdapter(new EventHandler(), new JsonMessageConverter()));

我的EventHandler类有一个名为handleMessage的方法,它获取传递给它的反序列化JSON对象。