第 19 章 JavaScript
概述
JavaScript,也称为 ECMAScript 是一种基于 Java 的脚本语言,允许对对象进行快速解析。JavaScript 支持是 camel-script
模块的一部分。
添加 script 模块
要在路由中使用 JavaScript,您需要在项目中添加对 camel-script
的依赖项,如 例 19.1 “添加 camel-script 依赖项” 所示。
例 19.1. 添加 camel-script 依赖项
<!-- Maven POM File --> <properties> <camel-version>2.23.2.fuse-790054-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
设置的所有属性。
Example
例 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>
使用 properties 组件
要访问 properties 组件中的属性值,请调用内置 属性
属性的 resolve
方法,如下所示:
.setHeader("myHeader").javaScript("properties.resolve(PropKey)")
其中 PropKey 是您要解析的属性的键,其中键值为 String
类型。
有关属性组件的详情,请参阅 Apache Camel 组件参考指南 中的 属性。