2016-11-30 165 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