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 回答