La conversion de Message de RabbitMQ en chaîne/json

Je suis actuellement des difficultés dur avec juste un simple problème. Je veux recevoir un message de RabbitMQ et l'ont transformé en une chaîne de caractères (ou plus tard, un objet json). Mais tout ce que je obtenir octets.

La Message objet affiche elle-même comme une chaîne de caractères de cette façon

(Body:'{"cityId":644}'; ID:null; Content:application/json; Headers:{}; Exchange:; RoutingKey:pages.type.index; Reply:null; DeliveryMode:NON_PERSISTENT; DeliveryTag:1)

La configuration de la classe (à l'aide de printemps)

@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();
    }

}

et l'auditeur de message

public class PageQueueListener implements MessageListener {

    public void onMessage(Message message) {
        System.out.println(message);
        System.out.println(message.getBody());
    }
 }

mon problème, c'est que le getBody() méthode affiche [B@4dbb73b0 donc, rien n'est jamais converti. Ni chaîne, ni à un objet json 🙁

Je me sens stupide, mais je ne peux pas trouver une solution ici

OriginalL'auteur MatthiasLaug | 2012-10-05