骆驼组播表现得很奇怪

时间:2016-12-09 14:38:39

标签: apache-camel

我从Camel Multicast那里得到了奇怪的行为。看起来我做错了什么但不能指出它。

我正在创建一个到两个端点的组播路由,如下所示:

Start point : direct://start
endpoint : direct://route1
endpoint : direct://route2

路线信息:

1)from("direct://start").process(new DeepCloneRequest()).multicast(new Aggregator()).to("direct://route1","direct://route2")

2)from("direct://route1").setheader(<to use later in processor>).process(<do some preprocessing>).to("rest url1").processor(<to do post processing>).end

3)from("direct://route2").setheader(<to use later in processor>).process(<do some preprocessing>).to("rest url2").processor(<to do post processing>).end

我注意到在预处理的第3号路由中,我从第2个预处理中获得了交换,而不是来自多播的DeepCloneRequest。

有人可以帮忙解释一下吗?我希望在路由2和3中获得多播接收的相同请求。

我使用的Camel版本是2.17.3。

1 个答案:

答案 0 :(得分:1)

您应该使用onPrepare功能,请参阅http://camel.apache.org/multicast.html

“多播将复制源Exchange并对每个副本进行多播。但是副本是浅拷贝,因此如果您有可变异邮件正文,则任何更改都将显示为其他复制的消息。如果您想使用深度克隆副本,那么您需要使用自定义onPrepare,它允许您使用处理器界面执行此操作。“