第 19 章 JavaScript
概述 复制链接链接已复制到粘贴板!
JavaScript(也称为 ECMAScript)是基于 Java 的脚本语言,允许快速解析对象。JavaScript 支持是 camel-script 模块的一部分。
添加 script 模块 复制链接链接已复制到粘贴板!
要在路由中使用 JavaScript,您需要在您的项目中添加对 camelscript 的依赖项,如 例 19.1 “添加 camel-script 依赖项” 所示。
例 19.1. 添加 camel-script 依赖项
<!-- Maven POM File -->
<properties>
<camel-version>2.23.2.fuse-7_10_0-00018-redhat-00001</camel-version>
...
</properties>
<dependencies>
...
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-script</artifactId>
<version>${camel-version}</version>
</dependency>
...
</dependencies>
静态导入 复制链接链接已复制到粘贴板!
要在应用程序代码中使用 javaScript() 静态方法,请在 Java 源文件中包含以下导入声明:
import static org.apache.camel.builder.script.ScriptBuilder.*;
内置属性 复制链接链接已复制到粘贴板!
表 19.1 “JavaScript 属性” 列出在使用 JavaScript 时可以访问的内置属性。
| 属性 | 类型 | 值 |
|---|---|---|
|
|
| Camel 上下文 |
|
|
| 当前交换 |
|
|
| IN 信息 |
|
|
| OUT 消息 |
|
|
|
通过 |
在 ENGINE_SCOPE 设置的属性。
示例 复制链接链接已复制到粘贴板!
例 19.2 “使用 JavaScript 的路由” 显示使用 JavaScript 的路由。
例 19.2. 使用 JavaScript 的路由
<camelContext>
<route>
<from uri="direct:start"/>
<choice>
<when>
<langauge langauge="javaScript">request.headers.get('user') == 'admin'</langauge>
<to uri="seda:adminQueue"/>
</when>
<otherwise>
<to uri="seda:regularQueue"/>
</otherwise>
</choice>
</route>
</camelContext>
使用属性组件 复制链接链接已复制到粘贴板!
要从属性组件访问属性值,调用内置 属性属性 上的 解析 方法,如下所示:
.setHeader("myHeader").javaScript("properties.resolve(PropKey)")
其中 PropKey 是您要解析的属性的键,其中键值是 String 类型。
有关属性组件的详情,请参阅 Apache Camel 组件参考指南 中的 Properties。