如何使用Spring Integration AMQP将msg作为json格式排队

时间:2017-05-19 07:21:30

标签: spring-integration spring-integration-amqp spring-integration-dsl

目前我正试图将消息放入json格式的队列中。在它下面是我的代码片段,但它不起作用。

return IntegrationFlows.from(Amqp.inboundAdapter(connectionFactory, NOTE_INCOMING_QUEUE)
                .concurrentConsumers(2))
                .transform(new JsonToObjectTransformer(Note.class))
                .handle(Note.class, (note, header) -> {
                    // doing something
                    return note;
                })
                .channel(Amqp.channel(connectionFactory).queueName(NOTE_OCRED_QUEUE).messageConverter(
                        new MappingJackson2MessageConverter()))
                .get();

消息作为 application / x-java-serialized-object 排在队列中。

1 个答案:

答案 0 :(得分:1)

两个问题:

  1. 支持AMQP的频道用于持久性,而不是简单地向RabbitMQ发送消息;默认情况下,整个消息被序列化(使用RabbitTemplate的转换器,而不是通道的。)
  2. 通道上的消息转换器仅用于转换数据类型的通道,而不用于序列化。
  3. 使用出站渠道适配器......

    .handle(Amqp.outboundAdapter(rabbitTemplate).routingKey(NOTE_OCRED_QUEUE));
    

    RabbitTemplate配置了Jackson2JsonMessageConverter