我有以下路线DSL:Apache的骆驼:访问CamelLoopIndex
from("file:" + autoLoadBaseDir + "?move=.classified")
.loop(fileTypes.length)
.choice()
.when(header("CamelFileName").contains(fileTypes[Integer.valueOf("${CamelLoopIndex}")]))
.to("file:" + classesBaseDir + "/" + fileTypes[Integer.valueOf("${CamelLoopIndex}")]);
如图所示,我希望访问CamelLoopIndex
并使用它作为在阵列中的索引。表达式不计算,因此路由不会被创建。我究竟做错了什么?提前致谢。
这方面的文档很少,而且我还没有成功地在搜索几个小时后获得解决方案。
UPDATE:我已经发布了同样的问题到骆驼用户邮件列表。
我用这个,但不知何故表达不能得到解决。 – okello 2013-04-11 16:27:05
假设您可以在“简单”表达式中使用$ {property.CamelLoopIndex}。如果你不使用简单的try属性(“CamelLoopIndex”) – katrin 2013-04-12 12:49:26
我只是使用了一个额外的处理器,我可以通过调用exchange.getProperty(“CamelLoopIndex”)来提取循环索引,并使用索引来获取实际值我想,将其设置在标题中,并在随后的路线组件中访问它。看到下面的答案(我在这里发布我的解决方案)。 – okello 2013-04-12 12:57:14