1
我正在尝试升级我们的应用程序之一的骆驼版本。但似乎我不能再使用“transferExchange”选项通过ActiveMQ/JMS发送属性。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.15.2但与空值时2.18.3输出正确的价值观。
我如何得到旧的行为?