2017-05-03 18 views
1

私のアプリケーションの1つのラクダバージョンをアップグレードしようとしています。しかし、私はもはや "transferExchange"オプションを使ってActiveMQ/JMS上でプロパティを送ることはできないようです。 2.18.3とキャメルの2.15.2が、ヌルを使用した場合には、正しい値を出力CamelでActiveMQ transferExchangeが機能しなくなりましたか?

public static void main(String args[]) throws Exception { 
    CamelContext context = new DefaultCamelContext(); 
    ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false"); 
    context.addComponent("test-jms", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory)); 
    context.addRoutes(new RouteBuilder() { 
     @Override 
     public void configure() { 
      String JMS_URI = "test-jms:queue:test.queue?transferExchange=true"; 

      from("direct:start") 
       .setProperty("some-string", constant("foo")) 
       .setProperty("some-date", body()) 
       .to(JMS_URI); 

      from(JMS_URI) 
       .process(new Processor() { 
        @Override 
        public void process(Exchange exchange) throws Exception { 
         System.out.println("some-string: " + exchange.getProperty("some-string")); 
         System.out.println("some-date: " + exchange.getProperty("some-date")); 
        } 
       }); 
     } 
    }); 

    ProducerTemplate template = context.createProducerTemplate(); 
    context.start(); 
    template.sendBody("direct:start", new Date()); 

    Thread.sleep(1000); 
    context.stop(); 
} 

は、私は小さなテストプログラムを書きました。

どのように古い動作をさせることができますか?

答えて

2

Exchangeプロパティはもう伝播されません。これを有効にすることはできません。データをメッセージヘッダーに格納します。

関連する問題