1

基本的に、リストの最初のレコードを常に失いたいものがあります。それは常に List<String> の形式になります-そして、「ヘッダー」は気にしません-これは常にリストの最初の要素であり、エンドポイントに送信したくありません

[「ヘッダー」、「メッセージ 1」、「メッセージ 2」...]

.from( A )  // this sends Lists of StringBuffers. The first in the list will be header 
.split().body() // now I have each
.to( B )

理想的には、交換で最初のメッセージを失いたいと考えており、そのために構築する正しいクエリについて考えています。

のようなもの (これは機能しません - removeMessage はラクダのオプションではありません)

from( A )
.removeMessage( 0 ) // remove first message - this doesn't actually exist
.split().body().
.to( B )

取引所の CamelSplitIndex 属性に基づいて削除するフィルターの作成を検討していますが、この時点で停止しており、「これは正しい方法で行っているのでしょうか?」と考えています。

4

2 に答える 2

1

私は私が提案したのとほぼ同じように、そして他の人が提案したのと同じようにそれをしましたが、(皮肉なことに)私には単純に見える単純な表現言語を使用しませんでした

.split()。body().filter(header( "CamelSplitIndex").isNotEqual(0))

于 2013-01-29T13:18:57.867 に答える
0

あなたが述べているように、これはスプリッターフィルターEIPの組み合わせの良い例のようです。

このようなものが必要かもしれません。

from(A)
   .split().body()
       .filter().simple("${property.CamelSplitIndex} > 0")
          .to(B);

これを処理する方法はいくつかありますが、このような基本的な EIP を使用できる場合は、複雑にしすぎないでください。

Java をいつでも自由にプラグインできます。それが目的にかなう場合は、プラグインしてください。

于 2013-01-16T16:13:54.597 に答える