第 4 章 定义逻辑接口
摘要
逻辑服务接口使用 portType 元素来定义。
概述 复制链接链接已复制到粘贴板!
逻辑服务接口使用 WSDL portType 元素来定义。portType 元素是抽象操作定义的集合。每个操作都由用于完成操作所代表的事务的输入、输出和错误消息定义。当生成代码来实现由 portType 元素定义的服务接口时,每个操作都会转换为包含合同中指定的输入、输出和故障消息定义的参数的方法。
Process 复制链接链接已复制到粘贴板!
要在 WSDL 合同中定义逻辑接口,您必须执行以下操作:
端口类型 复制链接链接已复制到粘贴板!
WSDL portType 元素是逻辑接口定义中的 root 元素。虽然许多 Web 服务实现将 portType 元素直接映射到生成的实现对象,但逻辑接口定义不指定实施服务提供的确切功能。例如,名为 ticketSystem 的逻辑接口可能会导致一个实施,该实施销售证书票据或问题解析票据。
portType 元素是 WSDL 文档的单元,它映射到绑定中,以定义端点公开定义的服务所使用的物理数据。
WSDL 文档中的每个 portType 元素都必须具有唯一的名称,该名称使用 name 属性指定,并且由一组操作组成,这些操作元素在操作元素中描述。WSDL 文档可描述任意数量的端口类型。
操作 复制链接链接已复制到粘贴板!
使用 WSDL 操作 元素定义的逻辑操作定义两个端点之间的交互。例如,对检查帐户平衡的请求和小部件的顺序都可以定义为操作。
在 portType 元素中定义的每个操作都必须具有唯一的名称,使用 name 属性指定。定义操作需要 name 属性。
操作消息 复制链接链接已复制到粘贴板!
逻辑操作由一组元素组成,代表端点之间进行通信的逻辑消息来执行操作。可以描述操作的元素列在 表 4.1 “操作消息元素” 中。
| 元素 | 描述 |
|---|---|
|
| 指定在发出请求时客户端端点发送到服务提供商的消息。此消息的部分对应于操作的输入参数。 |
|
| 指定服务提供商发送到客户端端点以响应请求的消息。此消息的部分内容与服务提供商可以更改的任何操作参数对应,如通过引用传递的值。这包括操作的返回值。 |
|
| 指定用于在端点之间传达错误条件的消息。 |
至少需要一个 输入 或一个 output 元素操作。一个操作可以同时具有 元素,但它只能有一个。不需要操作具有任何 输入和输出 fault 元素,但可以根据需要具有任意数量的 fault 元素。
这些元素在 表 4.2 “输入和输出元素的属性” 中列出的两个属性。
| 属性 | 描述 |
|---|---|
|
| 标识消息,以便在将操作映射到 concrete 数据格式时引用它。名称在括起端口类型中必须是唯一的。 |
|
|
指定描述要发送或接收数据的抽象信息。 |
不需要为所有 元素指定 输入和输出 name 属性;WSDL 根据操作的名称提供默认的命名方案。如果操作中只使用一个元素,则元素名称默认为操作的名称。如果使用了 元素,则元素名称默认为操作的名称,并分别附加 输入和输出 Request 或 Response。
返回值 复制链接链接已复制到粘贴板!
由于 operation 元素是操作期间传递的数据的一个抽象定义,因此 WSDL 不提供为操作指定的返回值。如果方法返回值,它将映射到 output 元素中作为该消息的最后一部分。
示例 复制链接链接已复制到粘贴板!
例如:您可能有一个类似于 例 4.1 “personalInfo 查找接口” 中显示的接口。
例 4.1. personalInfo 查找接口
interface personalInfoLookup
{
personalInfo lookup(in int empID)
raises(idNotFound);
}
interface personalInfoLookup
{
personalInfo lookup(in int empID)
raises(idNotFound);
}
这个接口可以映射到 例 4.2 “personalInfo 查找端口类型” 中的端口类型。
例 4.2. personalInfo 查找端口类型