2014-07-09 94 views
0

本质上,我想要考虑整条骆驼路线,以便我可以在开始和结束时抓取有效载荷。如何看待整条骆驼路线

现在,我知道我可以在中间主要“做”类,而不是将它从队列中拉出并放到磁盘上。这对于一条简单的路线来说很好,而不是有很多“做”类的路线。

但是,有没有办法将路线的起点和终点联系起来,而不必将其放入路线中?

我有很多路线,我想尽可能保持它们的清洁日志代码。

+0

看看这个http://stackoverflow.com/questions/23809040/camel-spring-osgi-is-there-a-way-to-specify-the-stop-method/23817812#23817812 – Namphibian

+0

我想你的意思是“建议”,而不是“方面”。你能显示一段代码吗? –

回答

1

我认为你有两个选择:

  1. 在每条路线的起点和终点添加窃听。见http://camel.apache.org/wire-tap.html。这显然意味着编辑路线,但很简单,每条路线只有两条线路。
  2. 使用RouteDefinition.adviceWith动态添加拦截器。见http://camel.apache.org/advicewith.html。我没有看到这个测试在外部使用,但我看不出有什么理由不能在实时代码中使用它。
1

使用骆驼截取的可能性如上所述here

  • intercept截取每个处理步骤,而在路线的路由的交换。
  • interceptFrom拦截路由中传入的Exchange。
  • interceptSendToEndpoint当Exchange即将发送到给定端点时截获。

在你的情况下,第二和第三种可能性可能是有利的。