您是否正在 IBM® Integration Designer(以下简称 Integration Designer)中编写中介流,以便将它们部署在 ">WebSphere Enterprise Service Bus (ESB) 上,并且需要在两个或更多中介流之间传递额外的信息?您可以通过阅读文档来决定使用哪些 “用户定义的上下文” 来完成此任务,并且您会选择使用用户上下文,因为它们似乎能够满足您的需求。
接下来,您打开中介流,查看 Integration Designer 窗口右侧的 Context 面板,看到了 Correlation、Transient 和 Shared 上下文,但没有看到用户上下文。这就引入了我们要讨论的问题,如何实际实现用户上下文?以下是一个分步指南,其中包含一个可供您试用的示例。
本文假设您有创建中介流并将它们部署到 WebSphere ESB 的经验。
系统前提条件
要部署本文中提供的 示例,您需要:
IBM WebSphere ESB V7.5.1 或更高版本 IBM Integration Designer V7.5.1 或更高版本
上下文概述
Service Message Object (SMO) 上下文支持中介原语在它们自身之间传输未包含在消息有效负载中的数据。SMO 上下文对象是用户定义的 或系统定义的。
哪些是系统定义的上下文对象?
以下上下文对象是系统定义的:
failInfo:该上下文用于包含异常信息。 primitiveContext:该对象包含特定的中介原语使用的信息。 dynamicProperty:该对象用于覆盖提升的属性。
哪些是用户定义的上下文对象?
可使用用户定义的上下文对象来存储属性,以便中介原语在流中的后续阶段访问它们。以下上下文对象是用户定义的:
transient:使原语能够在当前流中彼此传递值。 correlation:使原语能够将值从请求流传递到它的响应流。 shared:在一个流的所有分支之间共享值。
user:在 SCA 组件之间传递未包含在消息有效负载中的值。
本文将指导您执行实现用户上下文的步骤。
实现用户上下文
在这一节中,我们将简单介绍实现用户上下文的步骤,然后更详细地介绍下一节中包含的示例。
不同于其他用户定义的上下文,实现用户上下文并不是简单地将一个业务对象添加到 Request、Response 或 Error 选项卡上右侧的上下文面板中(参见图 1)。
图 1. 上下文面板的位置
在图 2 中,可以看到 Context 面板包含 Correlation、Transient 和 Shared 上下文,没有包含用户上下文。
图 2. 上下文面板
user 上下文使用 XSL Transformation 或 Business Object Map 原语配置,可在中介原语面板中的 Transformation 文件夹下找到它们(参见图 3)。
图 3. Transformation 原语