You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Groovy脚本中正确访问Camel的CamelLoopIndex属性?

错误原因

CamelLoopIndex是Apache Camel Loop组件循环执行时生成的Exchange内置属性,不能直接作为变量在Groovy脚本中裸引用。你之前的写法会让Groovy优先在脚本自身的作用域查找该变量,找不到就会抛出MissingPropertyException异常。

正确访问方式

以下两种写法均可正常获取索引值,按需选择即可:

方式1:通过内置exchange对象获取(更推荐)

Groovy脚本在Camel运行环境中默认可以直接访问exchange对象,调用属性获取方法即可,还可指定返回类型避免隐式类型转换问题:

<setHeader headerName="time_to">
  <groovy>1625761488 - 3600*(exchange.getProperty("CamelLoopIndex", Integer.class) - 1)</groovy>
</setHeader>
<setHeader headerName="time_from">
  <groovy>1625761488 - 3600*exchange.getProperty("CamelLoopIndex", Integer.class)</groovy>
</setHeader>

方式2:保留properties.resolve写法

如果要继续使用properties.resolve方法,只需要给CamelLoopIndex加上引号,作为字符串参数传入即可:

<setHeader headerName="time_to">
  <groovy>1625761488 - 3600*(properties.resolve("CamelLoopIndex") - 1)</groovy>
</setHeader>
<setHeader headerName="time_from">
  <groovy>1625761488 - 3600*properties.resolve("CamelLoopIndex")</groovy>
</setHeader>

内容的提问来源于stack exchange,提问作者Eljah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 09:12:05