92.2. 变量
变量 | 类型 | 描述 |
---|---|---|
camelId | 字符串 | CamelContext 名称 |
camelContext.OGNL | 对象 | 使用 Camel OGNL 表达式调用的 CamelContext。 |
交换 | Exchange | Exchange |
exchange.OGNL | 对象 | 使用 Camel OGNL 表达式调用的 Exchange。 |
exchangeId | 字符串 | 交换 ID |
id | 字符串 | 消息 ID |
messageTimestamp | 字符串 | 此消息来自的消息时间戳(自 epoc 起)。有些系统,如 JMS, Kafka, AWS 在 Camel 接收的事件/消息上有一个时间戳。如果存在时间戳,此方法会返回时间戳。创建的消息时间戳和交换不同。交换始终具有创建的时间戳,这是 Camel 创建交换时的本地时间戳。只有在消费者可以从源事件中提取时间戳时,消息时间戳仅在某些 Camel 组件中可用。如果消息没有时间戳,则返回 0。 |
正文(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。如果交换有任何,将回退和获取例外( |
exception.OGNL | 对象 | 请参阅使用 Camel OGNL 表达式对象调用的交换异常 |
exception.message | 字符串 |
如果没有在交换上设置异常,请参阅交换上的 exception.message。如果交换有任何,将回退和获取例外( |
exception.stacktrace | 字符串 |
如果没有对交换设置了异常,请参阅交换上的 exception.stracktrace。如果交换有任何,将回退和获取例外( |
date:_command_ | Date | 评估日期对象。支持的命令现在为当前时间戳,在创建当前交换时 exchangeCreated 用于时间戳,header.xxx 使用带有键 xxx 的 Long/Date 对象标头。exchangeProperty.xxx 使用 exchange 属性中的 Long/Date 对象,其键为 xxx。文件 最后一次修改的时间戳的文件(可供文件消费者使用)。命令接受偏移量,如 -24h 或 header.xxx+1h 或 now+1h30m-100。 |
date:_command:pattern_ | 字符串 |
使用 |
date-with-timezone:_command:timezone:pattern_ | 字符串 |
使用 |
bean:_bean expression_ | 对象 |
使用语言调用 bean 表达式。指定方法名称必须使用点作为分隔符。我们还支持组件所使用的 ?method=methodname 语法。Camel 默认将按指定名称查找 bean。但是,如果您需要引用 bean 类(如调用静态方法),您可以使用 type 前缀,如 |
| 字符串 | 使用给定键查找属性。如果键不存在或没有值,则可以指定可选的默认值。 |
routeId | 字符串 | 返回交换正在路由的当前路由的 id。 |
stepId | 字符串 | 返回交换正在路由的当前步骤的 id。 |
threadName | 字符串 | 返回当前线程的名称。可用于日志记录目的。 |
hostname | 字符串 | 返回本地主机名(如果无法解析,则为空)。 |
ref:xxx | 对象 | 从 Registry 中查找给定 ID 的 bean: |
type:name.field | 对象 |
按其 FQN 名称引用类型或字段。要引用字段,您可以附加 .FIELD_NAME。例如,您可以将 Exchange 中的常量字段称为: |
null | null | 代表 null |
random(value) | 整数 | 返回一个随机的、在 0 (包括) 和 value (不包括) 之间的值 |
random(min,max) | 整数 | 在 min (包括)和最大(不包括)之间返回一个随机整数 |
collate(group) | list | collate 函数迭代消息正文,并将数据分组到指定大小的子列表中。这可以与 Splitter EIP 一起使用,将消息正文和组/批处理分割子消息到一组 N 子列表。这个方法的工作方式与 Groovy 中的协作方法类似。 |
skip(number) | iterator | skip 功能迭代消息正文并跳过第一个项目数量。这可以与 Splitter EIP 一起使用,以分割消息正文并跳过第 N 个项目的数量。 |
messageHistory | 字符串 | 当前交换是如何路由的消息历史记录。这与路由 stack-trace 消息在未处理的异常时记录错误处理程序日志。 |
messageHistory(false) | 字符串 | 作为 messageHistory,但没有交换详情(仅包含路由 stack-trace)。如果您不想从消息本身记录敏感数据,可以使用此选项。 |