2.6. 转换消息内容
摘要
Apache Camel 支持各种转换消息内容的方法。除了用于修改消息内容的简单原生 API 外,Apache Camel 还支持与多个不同的第三方库和转换标准集成。
2.6.1. 简单消息转换
概述
Java DSL 内置 API,可让您在传入和传出消息上执行简单的转换。例如,例 2.1 “诊断消息的简单转换” 中显示的规则将文本 World!
附加至传入消息正文的末尾。
例 2.1. 诊断消息的简单转换
from("SourceURL").setBody(body().append(" World!")).to("TargetURL");
其中 setBody ()
命令取代了传入消息正文的内容。
用于简单转换的 API
您可以使用以下 API 类在路由器规则中执行消息内容的简单转换:
-
org.apache.camel.model.ProcessorDefinition
-
org.apache.camel.builder.Builder
-
org.apache.camel.builder.ValueBuilder
ProcessorDefinition 类
org.apache.camel.model.ProcessorDefinition
类定义 DSL 命令,您可以直接插入到路由器规则的所有流量中,例如 例 2.1 “诊断消息的简单转换” 中的 setBody ()
命令。表 2.5 “来自 ProcessorDefinition Class 的转换方法” 显示与转换消息内容相关的 ProcessorDefinition
方法:
方法 | 描述 |
---|---|
| 将 IN 消息正文转换为指定的类型。 |
| 添加一个处理器,以删除 FAULT 消息上的标头。 |
| 添加删除 IN 消息上的标头的处理器。 |
| 添加删除交换属性的处理器。 |
| 添加在 IN 消息上设置正文的处理器。 |
| 添加一个处理器,在 FAULT 消息上设置正文。 |
| 添加一个处理器,在 FAULT 消息上设置标头。 |
| 添加一个处理器,用于设置 IN 消息上的标头。 |
| 添加一个处理器,用于设置 IN 消息上的标头。 |
| 添加在 OUT 消息上设置标头的处理器。 |
| 添加在 OUT 消息上设置标头的处理器。 |
| 添加设置交换属性的处理器。 |
| 添加设置交换属性的处理器。 |
| 添加在 OUT 消息上设置正文的处理器。 |
| 添加在 OUT 消息上设置正文的处理器。 |
构建器类
org.apache.camel.builder.Builder
类在符合表达式或 predicates 时提供对消息内容的访问。换句话说,构建器
方法通常会在 DSL 命令 parameter 中调用,例如 例 2.1 “诊断消息的简单转换” 中的 body ()
命令。表 2.6 “Builder 类的方法” 总结了 Builder
类中提供的静态方法。
方法 | 描述 |
---|---|
| 在交换上为入站正文返回 predicate 和值构建器。 |
| 以特定类型形式返回入站消息正文的 predicate 和值构建器。 |
| 返回恒定表达式。 |
| 在交换上为错误正文返回 predicate 和值构建器。 |
| 以特定类型形式返回错误消息正文的 predicate 和值构建器。 |
| 为交换上的标头返回 predicate 和值构建器。 |
| 在交换上为出站正文返回 predicate 和值构建器。 |
| 以特定类型形式返回出站消息正文的 predicate 和值构建器。 |
| 为交换上的属性返回 predicate 和值构建器。 |
| 返回用所给替换替换所有正则表达式的表达式。 |
| 返回用所给替换替换所有正则表达式的表达式。 |
| 返回将交换发送到给定端点 uri 的表达式。 |
| 返回给定系统属性的表达式。 |
| 返回给定系统属性的表达式。 |
ValueBuilder 类
org.apache.camel.builder.ValueBuilder
类可让您修改 Builder
方法返回的值。换句话说,ValueBuilder
中的方法提供了修改消息内容的简单方法。表 2.7 “修饰符来自于 ValueBuilder Class” 总结了 ValueBuilder
类中可用的方法。也就是说,表中仅显示用于修改它们的值的方法(了解详细信息,请参阅 API 参考文档 )。
方法 | 描述 |
---|---|
| 使用给定值附加此表达式的字符串评估。 |
| 创建一个 predicate,左手表达式包含右手表达式的值。 |
| 使用注册类型转换器将当前值转换为给定类型。 |
| 使用注册类型转换器将当前值转换为 String。 |
| |
| |
| |
| |
|
返回 true,如果当前值等于给定 |
|
如果当前值大于给定 |
|
如果当前值大于或等于给定 |
| 如果当前值是给定类型的实例,则返回 true。 |
|
如果当前值小于给定 |
|
返回 true,如果当前值小于或等于给定 |
|
返回 true,如果当前值不等于给定 |
|
返回 true,如果当前值不是 |
|
返回 true,如果当前值为 |
| |
| negates predicate 参数。 |
| 将此表达式的字符串评估添加到给定值。 |
| |
| 使用给定替换替换正则表达式的所有冲突。 |
| 使用给定替换替换正则表达式的所有冲突。 |
| 使用给定的正则表达式来令牌此表达式的字符串转换。 |
| 使用给定的比较器对当前值进行排序。 |
|
如果当前值与 |
| 使用逗号令牌分隔符来令牌此表达式的字符串转换。 |
| 使用给定的令牌分隔符来令牌此表达式的字符串转换。 |