2016-11-30 164 views
1

我最近接管了一些Java代码,并且有一种方法接受了一个对象并基于该对象的某些属性对该对象执行了一些处理。直接执行骆驼路由

我正在玩阿帕奇骆驼,并能够定义完成相同任务的路线。我在哪里挣扎的是,我如何找到将对象传递给路由并执行逻辑的最简单方法?我现在所拥有的是一个

producerTemplate.sendBody("direct:blah", myObject) 

和路由本身定义

from("direct:blah").process(...) 

以上工作正常,虽然比以前慢一点。

这是取代方法逻辑的最简单方法吗?我希望能够抓住路线本身并将一个对象传递给它来执行,但我没有看到任何方法来执行此操作。

回答

1

您不一定需要from().process().您也可以将端点注入您的方法。例如:

@Consume(uri = "direct:blah") 
public void onFileSendToQueue(String body, @Header("CamelFileName") String name) { 
    LOG.info("Incoming file: {}", name); 
    producer.sendBody(body); 
} 

您也可以对生产者也这样做。有关更多详细信息,请参阅骆驼pojo消息传递。 http://camel.apache.org/pojo-messaging-example.html