
导出绑定中的函数选择器
函数选择器用于指示应该对请求消息中的数据执行的操作。 函数选择器配置为导出绑定的组成部分。
请考虑公开某个接口的 SCA 导出。 该接口包含两项操作 - Create 和 Update。 该导出具有从队列中读取内容的 JMS 绑定。
消息到达队列后,将向导出传递相关联的数据,但应该对所连接的组件调用该导出的接口中的哪项操作呢? 该操作由函数选择器和导出绑定配置确定。
函数选择器将返回本机函数名(发送该消息的客户机系统中的函数名)。 然后,该本机函数名映射至与该导出相关联的接口上的操作名或函数名。 例如,在下图中,函数选择器返回入局消息中的本机函数名
(CRT),该本机函数名将映射至 Create 操作,并且业务对象将发送至具有 Create 操作的 SCA 组件。图 1. 函数选择器

如果该接口只有一项操作,那么无需指定函数选择器。
多个预先打包的函数选择器可用并且列示在下面各部分中。
JMS 绑定
下表列示可以与下列绑定配合使用的函数选择器:
- JMS 绑定
- 通用 JMS 绑定
- WebSphere® MQ JMS 绑定
| 功能选择器 | 描述 |
|---|---|
| 适用于简单 JMS 数据绑定的 JMS 函数选择器 | 使用消息的 JMSType 属性来选择操作名称。 |
| JMS 头属性函数选择器 | 返回头中的 JMS 字符串属性 TargetFunctionName 的值。 |
| JMS 服务网关函数选择器 | 通过检查客户机所设置的 JMSReplyTo 属性确定请求是单向还是双向操作。 |
WebSphere MQ 绑定
下表列示可以与 WebSphere MQ 绑定配合使用的函数选择器。
| 功能选择器 | 描述 |
|---|---|
| MQ handleMessage 函数选择器 | 将 handleMessage 以值的形式返回,然后通过使用导出方法绑定将 handleMessage 映射至接口上的操作名称。 |
| MQ 使用 JMS 缺省函数选择器 | 从 MQRFH2 头的文件夹的 TargetFunctionName 属性中读取本机操作。 |
| MQ 使用消息主体格式作为本机函数 | 查找最后一个头的 Format 字段并将该字段以字符串形式返回。 |
| MQ 类型函数选择器 | 通过检索包含在 MQRFH2 头中找到的 Msd、Set、Type 和 Format 属性的 URL 在导出绑定中创建方法。 |
| MQ 服务网关函数选择器 | 使用 MQMD 头中的 MsgType 属性来确定操作名称。 |
HTTP 绑定
下表列示可以与 HTTP 绑定配合使用的函数选择器。
| 功能选择器 | 描述 |
|---|---|
| 基于 TargetFunctionName 头的 HTTP 函数选择器 | 使用来自于客户机的 TargetFunctionName HTTP 头属性来确定在运行时从导出调用哪个操作。 |
| 基于 URL 和 HTTP 方法的 HTTP 函数选择器 | 使用来自客户机且后面追加了 HTTP 方法的 URL 中的相对路径来确定对导出定义的本机操作。 |
| 基于带有操作名的 URL 的 HTTP 服务网关函数选择器 | 如果“operationMode = oneway”已附加到请求 URL,那么它可根据该 URL 来确定要调用的方法。 |
注: 您也可以使用 IBM® Integration Designer 创建自己的功能选择器。 可以在 IBM Integration Designer 文档中找到有关创建函数选择器的信息。 例如,可以在
MQ 函数选择器的概述中找到有关为 WebSphere MQ 绑定创建函数选择器的描述。