第 24 章 Object-Graph Navigation Language (OGNL)
概述
OGNL 是用于获取和设置 Java 对象属性的表达式语言。您可以对 getting 和 设置属性值使用相同的表达式。OGNL 支持包括在 camel-ognl 模块中。
Camel on EAP 部署
该组件受到 EAP (Wildfly Camel)框架的 Camel 支持,该框架在红帽 JBoss 企业应用平台(JBoss EAP)容器上提供简化的部署模型。
添加 OGNL 模块
要在路由中使用 OGNL,您需要在项目中添加对 camel-ognl 的依赖,如 例 24.1 “添加 camel-ognl 依赖项” 所示。
例 24.1. 添加 camel-ognl 依赖项
<!-- Maven POM File -->
...
<dependencies>
...
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-ognl</artifactId>
<version>${camel-version}</version>
</dependency>
...
</dependencies>静态导入
要在应用程序代码中使用 ognl () 静态方法,请在 Java 源文件中包含以下导入声明:
import static org.apache.camel.language.ognl.OgnlExpression.ognl;
内置变量
表 24.1 “OGNL 变量” 列出在使用 OGNL 时可以访问的内置变量。
表 24.1. OGNL 变量
| Name | 类型 | 描述 |
|---|---|---|
|
|
| 当前交换 |
|
|
| 当前交换 |
|
|
| Exchange 异常(如果有) |
|
|
| Exchange ID |
|
|
| 失败消息(如果有) |
|
|
| IN 消息 |
|
|
| OUT 消息 |
|
|
| Exchange 属性 |
|
|
| 命名 Exchange 属性的值 |
|
|
| 命名 Exchange 属性的输入值 |
Example
例 24.2 “使用 OGNL 的路由” 显示使用 OGNL 的路由。
例 24.2. 使用 OGNL 的路由
<camelContext>
<route>
<from uri="seda:foo"/>
<filter>
<language langauge="ognl">request.headers.foo == 'bar'</language>
<to uri="seda:bar"/>
</filter>
</route>
</camelContext>