将Message从RabbitMQ转换为string / json
我目前正在努力解决一个简单的问题。我想从RabbitMQ接收消息,并将其转换为字符串(或更高版本的json对象)。但是我得到的只是字节。
该 消息 对象显示本身作为一个字符串,方式
(Body:'{"cityId":644}'; ID:null; Content:application/json; Headers:{}; Exchange:; RoutingKey:pages.type.index; Reply:null; DeliveryMode:NON_PERSISTENT; DeliveryTag:1)配置类(使用spring)
@Configurationpublic class RabbitConfiguration {
    @Bean
    public CachingConnectionFactory connectionFactory() {
        CachingConnectionFactory connectionFactory = new CachingConnectionFactory("www.example.com");
        connectionFactory.setUsername("xxxx");
        connectionFactory.setPassword("xxxx");
        return connectionFactory;
    }
    @Bean
    public MessageConverter jsonMessageConverter(){
        JsonMessageConverter jsonMessageConverter = new JsonMessageConverter();
        return jsonMessageConverter;
    }
    @Bean
    public SimpleMessageListenerContainer messageListenerContainer(){
        SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory());
        container.setAutoStartup(false);
        container.setQueues(indexQueue());
        container.setConcurrentConsumers(1);
        container.setAcknowledgeMode(AcknowledgeMode.AUTO);
        container.setMessageListener(new MessageListenerAdapter(pageListener(), jsonMessageConverter()));
        return container;
    }
    @Bean
    public Queue indexQueue(){
        return new Queue("pages.type.index");
    }
    @Bean
    public MessageListener pageListener(){
        return new PageQueueListener();
    }
}
和消息监听器
public class PageQueueListener implements MessageListener {    public void onMessage(Message message) {
        System.out.println(message);
        System.out.println(message.getBody());
    }
 }
我的问题是, getBody() 方法显示 [B @ 4dbb73b0, 因此没有任何转换。既不是字符串也不是json对象:(
我觉得很愚蠢,但是我在这里找不到解决方案
回答:
message.getBody() 返回一个 byte[]
尝试:
byte[] body = message.getBody();System.out.println(new String(body));
以上是 将Message从RabbitMQ转换为string / json 的全部内容, 来源链接: utcz.com/qa/433991.html


