0

目前我正在嘗試將消息放入json格式的隊列中。下面是我的代碼片段,但它不起作用。如何把msg作爲使用Spring集成的json格式排隊AMQP

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

該消息在隊列中的推杆作爲應用程序/ x-java的序列化對象

回答

1

兩個問題:

  1. AMQP支持信道被用於持久性,不用於簡單地將消息發送到的RabbitMQ;默認情況下整個消息是序列化的(使用RabbitTemplate的轉換器,而不是通道的)。
  2. 通道上的消息轉換器僅用於轉換DataType的通道,而不用於序列化。

使用出站通道適配器...

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

RabbitTemplate配置了Jackson2JsonMessageConverter

+0

謝謝。解釋清楚。 – Kane