[SPRING] RabbitMQ에서 문자열 / json으로 메시지 변환
SPRINGRabbitMQ에서 문자열 / json으로 메시지 변환
나는 현재 공정하고 간단한 문제로 열심히 노력하고 있습니다. RabbitMQ에서 메시지를 받고 문자열 (또는 나중에 json 객체)로 변환해야합니다. 하지만 얻을 수있는 것은 바이트뿐입니다.
Message 객체는 그 자체로 문자열을 표시합니다.
(Body:'{"cityId":644}'; ID:null; Content:application/json; Headers:{}; Exchange:; RoutingKey:pages.type.index; Reply:null; DeliveryMode:NON_PERSISTENT; DeliveryTag:1)
구성 클래스 (스프링 사용)
@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 객체도 :(
나는 바보 같지만 여기서 해결책을 찾지 못한다.
해결법
-
==============================
1.message.getBody ()는 바이트 []를 반환합니다.
message.getBody ()는 바이트 []를 반환합니다.
시험:
byte[] body = message.getBody(); System.out.println(new String(body));
from https://stackoverflow.com/questions/12748284/converting-message-from-rabbitmq-into-string-json by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring @Value가 @Controller와 호환되지 않는 이유는 무엇입니까? (0) | 2019.04.23 |
---|---|
[SPRING] 주석이없는 Spring MVC 3.1? (0) | 2019.04.23 |
[SPRING] Thymeleaf의 산술 연산 (0) | 2019.04.23 |
[SPRING] 스프링 WS 클라이언트는 SoapHeader를 추가합니다. (0) | 2019.04.23 |
[SPRING] Spring MVC 3에서 뷰 / 응답 가로 채기 (0) | 2019.04.23 |