第 5 章 了解 WSDL 中的绑定
摘要
绑定将用于定义服务的逻辑消息映射到可由端点传输和接收的相对有效负载格式。
概述
绑定在服务使用的逻辑消息之间提供桥接,以免除端点在物理世界中使用的数据格式。它们描述逻辑消息如何映射到端点在有线中使用的有效负载格式。它位于详情(如参数顺序、聚合数据类型和返回值)的绑定中。例如,可以通过绑定对消息的部分重新排序,以反映 RPC 调用所需的顺序。根据绑定类型,您还可以识别哪个消息部分(若有)代表方法的返回类型。
端口类型和绑定
端口类型和绑定直接相关。端口类型是两个逻辑服务之间的一组交互抽象定义。绑定是关于如何在物理世界中实例化用于实施逻辑服务的消息。然后,每个绑定都与一组网络详情关联,完成一个端点的定义,该端点公开由端口类型定义的逻辑服务。
为确保端点仅定义单个服务,WSDL 要求绑定只能代表单个端口类型。例如,如果您有一个与两种端口类型的合同,您无法编写一个绑定,将其这两个绑定映射到聚合数据格式。您需要两个绑定。
但是,WSDL 允许将端口类型映射到多个绑定。例如,如果您的合同具有单一端口类型,您可以将其映射到两个或多个绑定。每个绑定可能会改变消息的部分映射方式,或者可以为消息指定完全不同的有效负载格式。
WSDL 元素
绑定使用 WSDL 绑定
元素在合同中定义。binding 元素包含诸如 name
的属性,它指定了对 PortType 的引用的绑定和类型的唯一名称。此属性的值用于将绑定与端点关联,如 第 4 章 定义逻辑接口 所述。
实际映射在 binding
元素的子项中定义。这些元素因您决定使用的有效负载格式类型而有所不同。以下章节将讨论不同的有效负载格式和用于指定映射的元素。
添加到合同
Apache CXF 提供命令行工具,可为预定义的服务接口生成绑定。
这些工具会将正确的元素添加到您的合同中。但是,我们建议您了解不同类型的绑定的工作方式。
您还可以使用任何文本编辑器将绑定添加到合同。在手动编辑合同时,您需要确保合同有效。
支持的绑定
Apache CXF 支持以下绑定:
- SOAP 1.1
- SOAP 1.2
- CORBA
- 纯 XML