简体   繁体   English

如何将JSON消息从RabbitMQ转换为Java对象?

[英]How do I convert a JSON message from RabbitMQ to a Java object?

I have two separate Java apps which I need to send messages between via RabbitMQ using spring-rabbit. 我有两个单独的Java应用程序,需要使用spring-rabbit在RabbitMQ之间发送消息。 In the app which is the producer I am using JsonMessageConverter as the message converter for my RabbitTemplate to convert my Java objects to JSON messages before they get sent to the queue. 在作为生产者的应用程序中,我使用JsonMessageConverter作为JsonMessageConverter的消息转换器, RabbitTemplate在将Java对象发送到队列之前将Java对象转换为JSON消息。

In the other app which is the consumer I want to convert the JSON messages back to Java objects. 在另一个使用方的应用程序中,我想将JSON消息转换回Java对象。 I have tried using SimpleMessageListenerContainer with a custom MessageListener and I can get the Message s from the queue, but I don't know to convert them from JSON back to Java objects. 我尝试将SimpleMessageListenerContainer与自定义MessageListener使用,并且可以从队列中获取Message ,但是我不知道将其从JSON转换回Java对象。

How do I use JsonMessageConverter when consuming messages asynchronously from RabbitMQ? 从RabbitMQ异步使用JsonMessageConverter时,如何使用JsonMessageConverter

I ended up using a MessageListenerAdapter with a custom delegate object and JsonMessageConverter as the MessageConverter . 我最终使用了带有自定义委托对象的MessageListenerAdapter ,并将JsonMessageConverter作为MessageConverter Like so: 像这样:

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

My EventHandler class has a single method called handleMessage which gets the deserialized JSON object passed to it. 我的EventHandler类有一个称为handleMessage的方法,该方法获取传递给它的反序列化JSON对象。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM