Filter 驼峰-要在每个exchange中删除第一封邮件吗

Filter 驼峰-要在每个exchange中删除第一封邮件吗,filter,message,exchange-server,apache-camel,Filter,Message,Exchange Server,Apache Camel,我有一些基本上总是想失去列表中的第一张记录的东西。它将始终是表单列表的一部分-我不关心“header”-它将始终是列表中的第一个元素,并且不希望将其发送到我的端点 [“标题”、“消息1”、“消息2”…] 理想情况下,我希望丢失交换中的第一条消息,并考虑为其构造正确的查询 类似(这不起作用-removeMessage不是驼峰选项) 我正在考虑创建一个过滤器,该过滤器基于exchange上的CamelSplitIndex属性进行删除,但此时已停止,我想知道“我这样做对吗?”正如您所说,这似乎是一个混

我有一些基本上总是想失去列表中的第一张记录的东西。它将始终是表单列表的一部分-我不关心“header”-它将始终是列表中的第一个元素,并且不希望将其发送到我的端点

[“标题”、“消息1”、“消息2”…]

理想情况下,我希望丢失交换中的第一条消息,并考虑为其构造正确的查询

类似(这不起作用-removeMessage不是驼峰选项)


我正在考虑创建一个过滤器,该过滤器基于exchange上的CamelSplitIndex属性进行删除,但此时已停止,我想知道“我这样做对吗?”

正如您所说,这似乎是一个混合了和EIP的好例子

像这样的东西可能是你需要的

from(A)
   .split().body()
       .filter().simple("${property.CamelSplitIndex} > 0")
          .to(B);
有几种方法可以处理这个问题,但是如果您可以像这样使用基本的EIP,请不要过于复杂


您总是可以自由地插入一些Java,如果可以的话,就这样做。

正如您所说的,这似乎是一个混合使用Java和EIP的好例子

像这样的东西可能是你需要的

from(A)
   .split().body()
       .filter().simple("${property.CamelSplitIndex} > 0")
          .to(B);
有几种方法可以处理这个问题,但是如果您可以像这样使用基本的EIP,请不要过于复杂


你总是可以自由地插入一些Java,如果这能达到目的,就去做。

我几乎按照我的建议去做,与其他人的建议类似,但没有使用简单的表达式语言,这(讽刺的是)对我来说似乎更简单

.split().body()
.filter(header(“CamelSplitIndex”).isNotEqual(0))

我几乎按照我的建议做了,与另一个人的建议类似,但没有使用简单的表达式语言,这(讽刺的是)对我来说似乎更简单

.split().body()
.filter(header(“CamelSplitIndex”).isNotEqual(0))

我认为这取决于列表的大小。如果列表相对较小,那么您的解决方案就可以了。如果列表很大,那么最好在拆分之前使用java删除列表的第一个元素。如果我是正确的,则必须将筛选器应用于列表中可能占用大量cpu的每个元素。很可能,但筛选器仅查看exchange属性,然后决定是否应传播该exchange。不能在那里做太多的工作。不确定简单语言消耗了多少cpu功率。我认为这取决于列表的大小。如果列表相对较小,那么您的解决方案就可以了。如果列表很大,那么最好在拆分之前使用java删除列表的第一个元素。如果我是正确的,则必须将筛选器应用于列表中可能占用大量cpu的每个元素。很可能,但筛选器仅查看exchange属性,然后决定是否应传播该exchange。不能在那里做太多的工作。不确定简单语言消耗了多少cpu功率
from(A)
   .split().body()
       .filter().simple("${property.CamelSplitIndex} > 0")
          .to(B);