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 消息正文,转换为指定的类型。所有类型( 类型 )必须使用其完全限定 Java 名称进行指定,但类型除外: byte[]StringIntegerLong。转换的正文可以是 null。

mandatoryBodyAs(Type)

类型

In 消息正文,转换为指定的类型。所有类型( 类型 )必须使用其完全限定 Java 名称进行指定,但类型除外: byte[]StringIntegerLong。转换的正文应该是非null。

header.HeaderName

对象

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

header[HeaderName]

对象

In message 的 HeaderName 标头(alternative 语法)。

标头。HeaderName

对象

In 消息的 HeaderName 标头。

headers[HeaderName]

对象

In message 的 HeaderName 标头(alternative 语法)。

in.header.HeaderName

对象

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

in.header[HeaderName]

对象

In message 的 HeaderName 标头(alternative 语法)。

in.headers.HeaderName

对象

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

in.headers[HeaderName]

对象

In message 的 HeaderName 标头(alternative 语法)。

out.header.HeaderName

对象

Out 消息的 HeaderName 标头。

out.header[HeaderName]

对象

Out 消息的 HeaderName 标头(alternative 语法)。

out.headers.HeaderName

对象

Out 消息的 HeaderName 标头。

out.headers[HeaderName]

对象

Out 消息的 HeaderName 标头(alternative 语法)。

headerAs(Key,Type)

类型

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

标头

map

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

in.headers

map

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

exchangeProperty.PropertyName

对象

交换上的 PropertyName 属性。

exchangeProperty[PropertyName]

对象

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

exchangeProperty.PropertyName.OGNL

对象

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

sys.SysPropertyName

字符串

SysPropertyName Java 系统属性。

sysenv.SysEnvVar

字符串

SysEnvVar 系统环境变量。

例外

字符串

来自 Exchange.getException() 异常对象;如果此值为空,来自 Exchange.EXCEPTION_CAUGHT 属性的 caught 除外,否则为空。支持 OGNL 表达式。

exception.message

字符串

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

exception.stacktrace

字符串

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

日期:命令:模式

字符串

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

bean:beanID.Method

对象

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

Ref:beanID

对象

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

属性:key

字符串

Key 属性占位符 的值。

属性:位置密钥

字符串

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

threadName

字符串

当前线程的名称。

routeId

字符串

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

类型:名称[.Field]

对象

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

collate(group)

list

在 Camel 2.17 中,collate 函数将迭代邮件正文,并将数据分组到特定大小的子列表中。您可以使用 和 Splitter EIP 将消息正文和组分组,或者将子消息分组到 N 子列表中。

skip(number)

ITerator

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