2011-01-29 126 views
2

我想要實現的content enricher pattern與駱駝這樣的:駱駝動態uri參數

from("direct:x").enrich(dynamicUri,new MyAggregatorStrategy()).to("direct:y") 

動態URI是基於在來自直接每個消息:x信道。 所以我們可以說有一個xml項目的值a比uri應該是http://someurl?q=a,但dynamicUri只能是一個資源通道標識符。 我在here上發現了一些討論,但我並不真正瞭解它,並且「HttpProducer.HTTP_URI」在我的工作區中不可用,我需要哪種駱駝包?我如何做到這一點,處理器可能?但是如何?

回答

2

你使用的是什麼版本的駱駝?

許多這些鍵的常量名已被移至Camel 2.0以後的org.apache.camel.Exchange類。所以看看這個類的HTTP_URI常量。 這也是什麼所列的維基頁面 http://camel.apache.org/http

內容富集器不支持動態URI,但一些駱駝組成部分允許設置一個URI作爲標題;如camel-http。這意味着你的情況下,你可以使用常量Exchange.HTTP_URI提供uri作爲頭文件。

然而,這表示,Camel中的收件人列表EIP模式實際上支持評估完全動態的URI,並且它也支持聚合。 http://camel.apache.org/recipient-list.html

所以你可以實現這樣的解決方案:

from("direct:x") 
    .recipientList(header("dynamicUriHeader")).aggregationStrategy(new MyOwnAggregationStrategy()) 
    .to("direct:y");