35.4. ExchangeHelper 类
概述 复制链接链接已复制到粘贴板!
org.apache.camel.util.ExchangeHelper 类是 Apache Camel 实用程序类,提供在实施处理器时可以使用的方法。
解决端点 复制链接链接已复制到粘贴板!
静态 resolveEndpoint() 方法是 ExchangeHelper 类中最有用的方法之一。您可以在处理器中使用它来即时创建新的 Endpoint 实例。
例 35.6. resolveEndpoint() 方法
resolveEndpoint() 的第一个参数是一个交换实例,第二个参数通常是端点 URI 字符串。例 35.7 “创建文件端点” 显示如何从交换实例 交换中创建新的文件端点
例 35.7. 创建文件端点
Endpoint file_endp = ExchangeHelper.resolveEndpoint(exchange, "file://tmp/messages/in.xml");
Endpoint file_endp = ExchangeHelper.resolveEndpoint(exchange, "file://tmp/messages/in.xml");
嵌套交换访问器 复制链接链接已复制到粘贴板!
ExchangeHelper 类提供了多种静态方法,其格式为 getMandatoryBeanProperty(),它将 对应的 getBeanProperty() 方法包装在 Exchange 类上。两者之间的区别在于,原始 getBeanProperty() accessors 返回 null (如果对应的属性不可用),而 getMandatoryBeanProperty() 打包程序方法会引发 Java 异常。以下打包程序方法在 ExchangeHelper 类中实施:
测试交换模式 复制链接链接已复制到粘贴板!
几种不同的交换模式与保留 In 消息兼容。几个不同的交换模式也与按住 Out 消息兼容。为提供检查交换对象是否能够持有 In 消息或 Out 消息的快速方法,ExchangeHelper 类将提供以下方法:
获取 In 消息的 MIME 内容类型 复制链接链接已复制到粘贴板!
如果要找出交换的 MIME 内容类型,可以通过调用 ExchangeHelper.getContentType(exchange) 方法来访问它。要实现此实施,ExchangeHelper 对象会查找 In 消息的 Content-Type header>_<-jaxb this 方法的值,它依赖于底层组件来填充标头值。