77.2. 变量


Expand
变量类型描述

camelId

字符串

CamelContext 名称

camelContext.OGNL

对象

使用 Camel OGNL 表达式调用的 CamelContext。

交换

Exchange

Exchange

Exchange.OGNL

对象

Exchange 使用 Camel OGNL 表达式调用。

exchangeId

字符串

Exchange id

id

字符串

消息 ID

messageTimestamp

字符串

此消息的来源的消息时间戳(millis since epoc)。一些系统,如 JMS、Kafka、AWS 在 Camel 收到的事件/消息上有一个时间戳。如果存在时间戳,这个方法会返回时间戳。创建的消息时间戳和交换不同。交换始终具有创建的时间戳,这是 Camel 创建交换时的本地时间戳。只有当消费者能够从源事件中提取时间戳时,一些 Camel 组件中才有消息时间戳。如果消息没有时间戳,则返回 0。

正文(body)

对象

正文(body)

body.OGNL

对象

使用 Camel OGNL 表达式调用的正文。

bodyAs(type)

类型

将正文转换为由其 classname 确定的给定类型。转换的正文可以是 null。

bodyAs(type).OGNL

对象

将正文转换为由其 classname 确定的给定类型,然后使用 Camel OGNL 表达式调用方法。转换的正文可以是 null。

bodyOneLine

字符串

将正文转换为 String,并删除所有 line-breaks,以便字符串在一行中。

mandatoryBodyAs(type)

类型

将正文转换为由其 classname 确定的给定类型,并期望正文不是 null。

mandatoryBodyAs(type).OGNL

对象

将正文转换为由其 classname 确定的给定类型,然后使用 Camel OGNL 表达式调用方法。

header.foo

对象

请参阅 foo 标头

header[foo]

对象

请参阅 foo 标头

headers.foo

对象

请参阅 foo 标头

headers:foo

对象

请参阅 foo 标头

headers[foo]

对象

请参阅 foo 标头

header.foo[bar]

对象

关于 foo 标头作为映射,并在映射上以 bar 为键执行查找

header.foo.OGNL

对象

引用 foo 标头并使用 Camel OGNL 表达式调用其值。

headerAs(key,type)

类型

将标头转换为由其 classname 确定的给定类型

标头

Map

请参阅标头

exchangeProperty.foo

对象

请参阅交换上的 foo 属性

exchangeProperty[foo]

对象

请参阅交换上的 foo 属性

exchangeProperty.foo.OGNL

对象

请参考交换上的 foo 属性,并使用 Camel OGNL 表达式调用其值。

sys.foo

字符串

请参阅 JVM 系统属性

sysenv.foo

字符串

请参阅系统环境变量

env.foo

字符串

请参阅系统环境变量

例外

对象

如果没有在交换上设置异常,请参阅交换上的异常对象为 null。如果 Exchange 有任何,将会回退和获取异常(Exchange.EXCEPTION_CAUGHT)。

例外。OGNL

对象

请参考使用 Camel OGNL 表达式对象调用的交换异常

exception.message

字符串

如果没有在交换上设置异常,请参阅 Exchange 上的 exception.message。如果 Exchange 有任何,将会回退和获取异常(Exchange.EXCEPTION_CAUGHT)。

exception.stacktrace

字符串

如果没有在交换上设置异常,请参阅交换上的 exception.stracktrace。如果 Exchange 有任何,将会回退和获取异常(Exchange.EXCEPTION_CAUGHT)。

date:_command_

Date

评估为 Date 对象。支持的命令是:当前的时间戳,在创建当前 交换 时为时间戳创建交换,header.xxx 使用带有密钥 xxx 的 Long/Date 对象标头。exchangeProperty.xxx,使用带有键 xxx 的 exchange 属性中的 Long/Date 对象。文件 的最后一个修改时间戳的文件(可通过文件消费者使用)。命令接受偏移,如: now-24hheader.xxx+1h,甚至 现在+1h30m-100

date:_command:pattern_

字符串

使用 java.text.SimpleDateFormat 模式进行日期格式化。

date-with-timezone:_command:timezone:pattern_

字符串

使用 java.text.SimpleDateFormat 时区和模式进行日期格式化。

bean:_bean expression_

对象

使用语言调用 bean 表达式.指定方法名称,必须使用点作为分隔符。我们还支持组件使用的 ?method=methodname 语法。默认情况下,Camel 将按指定名称查找 bean。但是,如果您需要引用 bean 类(如调用静态方法),那么您可以使用一个类型作为前缀,如 bean:type:fqnClassName

properties:key:default

字符串

使用给定键查找属性。如果键不存在或没有值,则可以指定可选的默认值。

routeId

字符串

返回 Exchange 正在路由的当前路由的 id。

stepId

字符串

返回 Exchange 正在路由的当前步骤的 id。

threadName

字符串

返回当前线程的名称。可用于日志目的。

主机名

字符串

返回本地主机名(如果无法解析,则为空)。

ref:xxx

对象

从具有给定 id 的 Registry 中查找 bean。

type:name.field

对象

根据 FQN 名称引用类型或字段。要引用某个字段,您可以附加 .FIELD_NAME。例如,您可以将 Exchange 中的 constant 字段引用为: org.apache.camel.Exchange.FILE_NAME

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)。如果您不想从消息本身记录敏感数据,可以使用此项。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat