将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)

@Configuration

public 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

回到顶部