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。如果交换有任何情况,将回退和获取异常(Exchange.EXCEPTION_CAUGHT)。

OGNL例外

对象

请参阅 使用 Camel OGNL 表达式对象调用的交换例外

exception.message

字符串

如果交换中未设定异常,请参阅 Exchange 上的 exception.message 为 null。如果交换有任何情况,将回退和获取异常(Exchange.EXCEPTION_CAUGHT)。

exception.stacktrace

字符串

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

date:_command_

Date

评估到 Date 对象。支持的命令有: 现在 用于当前时间戳,在创建当前交换时 Exchange Created 代表时间戳,header.xxx 使用 Long/Date 对象标头和键 xxx。ExchangeProperty.xxx 将 exchange 属性中的 Long/Date 对象与密钥 xxx 搭配使用。文件 最近修改的时间戳的文件(可通过文件使用者提供)。命令接受偏移量,如 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 类(如调用静态方法),您可以使用 type 作为前缀,如 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 中的常量字段指代为: 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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

© 2024 Red Hat, Inc.