74.2. 变量
| 变量 | 类型 | 描述 | 
|---|---|---|
| camelId | 字符串 | CamelContext 名称 | 
| camelContext.OGNL | 对象 | 使用 Camel OGNL 表达式调用的 CamelContext。 | 
| 交换 | Exchange | Exchange | 
| Exchange.OGNL | 对象 | 使用 Camel OGNL 表达式调用的 Exchange。 | 
| exchangeId | 字符串 | Exchange id | 
| id | 字符串 | 消息 ID | 
| messageTimestamp | 字符串 | 此消息的来源消息时间戳(自 epoc 起)。JMS、Kafka、AWS 等一些系统在 event/message 上有一个时间戳,Camel 收到了。如果存在时间戳,则此方法会返回时间戳。创建的消息时间戳和交换不同。交换始终有一个创建的时间戳,这是 Camel 创建交换时的本地时间戳。只有消费者能够从源事件中提取时间戳时,某些 Camel 组件中才提供消息时间戳。如果消息没有时间戳,则返回 0。 | 
| 正文(body) | 对象 | 正文(body) | 
| 正文。OGNL | 对象 | 使用 Camel OGNL 表达式调用的正文。 | 
| bodyAs(type) | 类型 | 将正文转换为由类名称决定的给定类型。转换的正文可以是 null。 | 
| bodyAs(type).OGNL | 对象 | 将正文转换为由类名称决定的给定类型,然后使用 Camel OGNL 表达式调用方法。转换的正文可以是 null。 | 
| bodyOneLine | 字符串 | 将正文转换为字符串,并删除所有行入侵,以便字符串位于一行中。 | 
| mandatoryBodyAs(type) | 类型 | 将正文转换为由其 classname 确定的给定类型,并且希望正文不是 null。 | 
| mandatoryBodyAs(type).OGNL | 对象 | 将正文转换为由类名称决定的给定类型,然后使用 Camel OGNL 表达式调用方法。 | 
| header.foo | 对象 | 请参阅 foo 标头 | 
| header[foo] | 对象 | 请参阅 foo 标头 | 
| headers.foo | 对象 | 请参阅 foo 标头 | 
| headers:foo | 对象 | 请参阅 foo 标头 | 
| headers[foo] | 对象 | 请参阅 foo 标头 | 
| header.foo[bar] | 对象 | 将 foo 标头视为映射,并在映射上执行查找,并将 bar 为 key | 
| header.foo.OGNL | 对象 | 请参阅 foo 标头并使用 Camel OGNL 表达式来调用其值。 | 
| headerAs (键,键入) | 类型 | 将标头转换为由类名称决定的给定类型 | 
| 标头 | Map | 请参阅标头 | 
| exchangeProperty.foo | 对象 | 请参阅交换中的 foo 属性 | 
| exchangeProperty[foo] | 对象 | 请参阅交换中的 foo 属性 | 
| exchangeProperty.foo.OGNL | 对象 | 请参阅交换上的 foo 属性,并使用 Camel OGNL 表达式来调用其值。 | 
| sys.foo | 字符串 | 请参阅 JVM 系统属性 | 
| sysenv.foo | 字符串 | 请参阅系统环境变量 | 
| env.foo | 字符串 | 请参阅系统环境变量 | 
| 例外 | 对象 | 
								如果没有在交换上设置异常,请参阅交换上的异常对象为 null。如果交换有任何情况,将回退和获取异常( | 
| OGNL例外 | 对象 | 请参阅 使用 Camel OGNL 表达式对象调用的交换例外 | 
| exception.message | 字符串 | 
								如果交换中未设定异常,请参阅 Exchange 上的 exception.message 为 null。如果交换有任何情况,将回退和获取异常( | 
| exception.stacktrace | 字符串 | 
								请参阅交换上的 exception.stracktrace,如果没有设置交换异常,则为 null。如果交换有任何情况,将回退和获取异常( | 
| date:_command_ | Date | 评估到 Date 对象。支持的命令有: 现在 用于当前时间戳,在创建当前交换时 Exchange Created 代表时间戳,header.xxx 使用 Long/Date 对象标头和键 xxx。ExchangeProperty.xxx 将 exchange 属性中的 Long/Date 对象与密钥 xxx 搭配使用。文件 最近修改的时间戳的文件(可通过文件使用者提供)。命令接受偏移量,如 now-24h 或 header.xxx+1h,甚至现在为 +1h30m-100。 | 
| date:_command:pattern_ | 字符串 | 
								使用  | 
| date-with-timezone:_command:timezone:pattern_ | 字符串 | 
								使用  | 
| bean:_bean expression_ | 对象 | 
								使用语言调用 bean 表达式.指定方法名称,您必须使用点作为分隔符。我们还支持组件使用的 ?method=methodname 语法。Camel 默认将按给定名称查找 bean。但是,如果您需要引用 bean 类(如调用静态方法),您可以使用 type 作为前缀,如  | 
| 
								 | 字符串 | 使用给定密钥查找属性。如果键不存在或没有值,则可以指定可选的默认值。 | 
| routeId | 字符串 | 返回 Exchange 正在路由的当前路由的 id。 | 
| stepId | 字符串 | 返回 Exchange 正在路由的当前步骤的 id。 | 
| threadName | 字符串 | 返回当前线程的名称。可用于记录目的。 | 
| 主机名 | 字符串 | 返回本地主机名(如果无法解析,则为空)。 | 
| ref:xxx | 对象 | 使用给定 id 从 Registry 查找 bean。 | 
| type:name.field | 对象 | 
								使用 FQN 名称引用类型或字段。要引用字段,您可以附加 .FIELD_NAME。例如,您可以将 Exchange 中的常量字段指代为:  | 
| null | null | represents a null | 
| random(value) | 整数 | 返回一个随机的、在 0 (包括) 和 value (不包括) 之间的值 | 
| random(min,max) | 整数 | 在 min (包括)和 max (excluded)之间返回一个随机整数。 | 
| collate(group) | list | collate 函数将消息正文和将数据分组到指定大小的子列表中。这可以与 Splitter EIP 一起使用,将消息正文和组/批量拆分为一组 N 子列表。此方法的工作方式与 Groovy 中的合作方法类似。 | 
| skip(number) | 迭代器 | skip 函数迭代消息正文,并跳过第一个项目数量。这可以与 Splitter EIP 一起使用以分割消息正文并跳过前 N 个项目数。 | 
| messageHistory | 字符串 | 当前交换的消息历史记录,即路由方式。这类似于路由 stack-trace 消息历史记录,当出现未处理的异常时错误处理程序日志。 | 
| messageHistory(false) | 字符串 | 作为 messageHistory,但没有交换详细信息(仅包含路由 stack-trace)。如果您不想从消息本身记录敏感数据,可以使用此项。 |