Apache camel 将表达式传递给tokenize()

Apache camel 将表达式传递给tokenize(),apache-camel,Apache Camel,我有一个使用文件并将其拆分的路由: from("file:etc.") .split(body().tokenize("\n", 100, false)).streaming() 第二个参数设置为常数100。根据文件,有没有办法让它保持警惕。例如,就在我点击“拆分”之前,我可以在标题中设置一个值,如果我可以这样做,那就太酷了: .split(body().tokenize("\n", simple("...pull header value..."), false)) 但是,tokeniz

我有一个使用文件并将其拆分的路由:

from("file:etc.")
.split(body().tokenize("\n", 100, false)).streaming() 
第二个参数设置为常数100。根据文件,有没有办法让它保持警惕。例如,就在我点击“拆分”之前,我可以在标题中设置一个值,如果我可以这样做,那就太酷了:

.split(body().tokenize("\n", simple("...pull header value..."), false))
但是,tokenize()需要整数,而不是表达式


有没有一种简单的方法可以实现我想要的:改变“group”的值?

我还没有看到可以将表达式传递给标记化方法。但是,您可以这样做:

.split().method("mySplitterBean", "splitBody")
传递整个exchange,然后可以访问标头和属性。 请参见流模式pojo下的示例;

我还没有看到可以将表达式传递给标记化方法。但是,您可以这样做:

.split().method("mySplitterBean", "splitBody")
传递整个exchange,然后可以访问标头和属性。 请参见流模式pojo下的示例;

是的,您需要调用一个方法,然后从该方法创建一个迭代器,按照您想要的元素数拆分正文。例如,您可以创建org.apache.camel.util.GroupIterator的一个实例,这是该标记化器将要做的。您需要调用一个方法,然后从该方法创建一个迭代器,该迭代器可以根据需要将主体按元素数进行拆分。例如,您可以创建org.apache.camel.util.GroupIterator的一个实例,这正是标记器所要做的