30.6. 变量参考

变量表

表 30.1 “简单语言的变量” 显示简单语言支持的所有变量。

表 30.1. 简单语言的变量

变量类型描述

camelContext

对象

Camel 上下文。支持 OGNL 表达式。

camelId

字符串

Camel 上下文的 ID 值。

exchangeId

字符串

交换的 ID 值。

id

字符串

In message ID 值。

正文(body)

对象

In message body。支持 OGNL 表达式。

in.body

对象

In message body。支持 OGNL 表达式。

out.body

对象

Out 消息正文。

bodyAs(Type)

类型

In message body (In message body)转换为指定的类型。所有类型、类型 必须使用其完全限定的 Java 名称指定,但类型除外: byte[]StringIntegerLong。转换后的正文可以是 null。

mandatoryBodyAs (类型)

类型

In message body (In message body)转换为指定的类型。所有类型、类型 必须使用其完全限定的 Java 名称指定,但类型除外: byte[]StringIntegerLong。转换后的正文预期为非空。

标头。HeaderName

对象

In message 的 HeaderName 标头。支持 OGNL 表达式。

header[HeaderName]

对象

In message 的 HeaderName 标头(alternative syntax)。

标头。HeaderName

对象

In message 的 HeaderName 标头。

header[HeaderName]

对象

In message 的 HeaderName 标头(alternative syntax)。

in.header.HeaderName

对象

In message 的 HeaderName 标头。支持 OGNL 表达式。

in.header[HeaderName]

对象

In message 的 HeaderName 标头(alternative syntax)。

in.headers.HeaderName

对象

In message 的 HeaderName 标头。支持 OGNL 表达式。

in.headers[HeaderName]

对象

In message 的 HeaderName 标头(alternative syntax)。

out.header.HeaderName

对象

Out message 的 HeaderName 标头。

out.header[HeaderName]

对象

Out message 的 HeaderName 标头(alternative syntax)。

out.headers.HeaderName

对象

Out message 的 HeaderName 标头。

out.headers[HeaderName]

对象

Out message 的 HeaderName 标头(alternative syntax)。

标头(密钥类型)

类型

Key 标头转换为指定类型。所有类型、类型 必须使用其完全限定的 Java 名称指定,但类型除外: byte[]StringIntegerLong。转换的值可以是 null。

标头

map

所有 In 标头(作为 java.util.Map 类型)。

in.headers

map

所有 In 标头(作为 java.util.Map 类型)。

exchangeProperty.PropertyName

对象

交换上的 PropertyName 属性。

exchangeProperty[PropertyName]

对象

交换上的 PropertyName 属性(alternative 语法)。

ExchangeProperty.PropertyName.OGNL

对象

交换上的 PropertyName 属性,并使用 Camel OGNL 表达式调用其值。

sys.SysPropertyName

字符串

SysPropertyName Java 系统属性。

sysenv.SysEnvVar

字符串

SysEnvVar 系统环境变量。

例外

字符串

Exchange.getException () 中的异常对象,如果这个值为空,则来自 Exchange.EXCEPTION_CAUGHT 属性中的布线异常;否则为空。支持 OGNL 表达式。

exception.message

字符串

如果在交换上设置异常,则返回 Exception.getMessage () 值;否则返回 null

exception.stacktrace

字符串

如果在交换上设置异常,则返回 Exception.getStackTrace ();,否则返回 null注意: 简单语言首先尝试从 Exchange.getException () 检索异常。如果没有设置该属性,它会通过调用 Exchange.getProperty (Exchange.CAUGHT_EXCEPTION) 来检查发现异常。

Date:command:pattern

字符串

使用 java.text.SimpleDateFormat 模式格式的日期。以下命令被支持: 现在,用于当前日期和时间 ; 标头名称或 in .header.HeaderName,使用来自 Out 消息的HeaderName 标头中的 java.util.Date 对象; out.header. HeaderName 来使用来自 Out 消息的 HeaderName 标头中的 java.util.Date 对象。

bean:beanID.Method

对象

在被引用的 bean 上调用一个方法 ,并返回方法调用 的结果。要指定方法名称,您可以使用 beanID.方法 语法;或者,您可以使用 beanID?method=method Name语法。

ref:beanID

对象

在注册表中查找包含 ID beanID 的 bean,并返回对 bean 本身的引用。例如,如果您使用 splitter EIP,您可以使用此变量来引用实施拆分算法的 bean。

属性:密钥

字符串

Key 属性占位符值。

属性:位置密钥

字符串

Key 属性占位符值,其中属性文件的位置由 Location 提供。

threadName

字符串

当前线程的名称。

routeId

字符串

返回要路由交换的当前路由的 ID。

类型:名称[.Field]

对象

通过其 Fully-Qualified-Name (FQN)引用 type 或 字段。要引用字段,请附加 字段。例如,您可以将 Exchange 类中的 FILE_NAME constant 字段指代为 type:org.apache.camel.Exchange.FILE_NAME

collate(group)

list

从 Camel 2.17 中,合作功能将迭代消息正文,并将数据分组到特定大小的子列表中。您可以与 Splitter EIP 搭配使用,将消息正文和组分割成一组 N 子列表。

skip(number)

erator

跳过功能会迭代消息正文,并跳过第一个项目数。这可以与 Splitter EIP 搭配,以分割消息正文并跳过前 N 个项目数。