2011-01-29 6 views
2

は、私はこのようなラクダとcontent enricher patternを実装する:Xチャンネル:ラクダダイナミックuriパラメータ

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

ダイナミックURIは、直接から来て、各メッセージに基づいています。 したがって、urlがhttp://someurl?q=aのような値より大きいx値を持つxmlアイテムがあるとしますが、dynamicUriはリソースチャネル識別子にしかなりません。 このhereについていくつかのディスカッションが見つかりましたが、私はそれを本当に理解しておらず、私のワークスペースでは「HttpProducer.HTTP_URI」を利用できません。そして、私はこれをどのようにして行うのでしょうか?しかしどのように?

答えて

2

あなたはどのバージョンのCamelを使用していますか?

キーの定数名の多くは、Camel 2.0以降のorg.apache.camel.Exchangeクラスに移動されています。だから、HTTP_URI定数のこのクラスを見てください。 wikiページ http://camel.apache.org/http

コンテンツEnricherが動的URIをサポートしていないに記載されているが、一部のキャメルコンポーネントはヘッダとしてURIを設定することができているものもあります 。ラクダ - httpのような。あなたの場合、一定のExchange.HTTP_URIを使用してuriをヘッダーとして指定することができます。

しかし、Camelの受信者リストEIPパターンは実際にURIを完全に動的に評価することをサポートしており、集約もサポートしています。

from("direct:x") 
    .recipientList(header("dynamicUriHeader")).aggregationStrategy(new MyOwnAggregationStrategy()) 
    .to("direct:y"); 
http://camel.apache.org/recipient-list.html

は、だから、このようなソリューションを実装することができ

関連する問題