webservice之wsdl

上传人:第*** 文档编号:32819320 上传时间:2018-02-12 格式:DOC 页数:8 大小:85.50KB
返回 下载 相关 举报
webservice之wsdl_第1页
第1页 / 共8页
webservice之wsdl_第2页
第2页 / 共8页
webservice之wsdl_第3页
第3页 / 共8页
webservice之wsdl_第4页
第4页 / 共8页
webservice之wsdl_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《webservice之wsdl》由会员分享,可在线阅读,更多相关《webservice之wsdl(8页珍藏版)》请在金锄头文库上搜索。

1、一,WSDL 概述 WebServices Description Language (WSDL Web 服务语言)是一个用于精确描述 Web Service 的文档格式。 WSDL 非常适合于用作代码生成器,它能够读取 WSDL 文档,并且可以为访问 Web服务生成一个程序化的接口,大多数软件供应商和主要的标准机构(包括 W3C、WS-I 和 OASIS)都支持 WSDL。例如:JAX-RPC provider(例如:BEA Weblogic)通过 API 用 WSDL 生成相应的占位程序;IBM WebSphere、Microsoft.NET 以及 Apache Axis 都有自己的工具生

2、成相关的代码。下图是一个例子: 上面的例子 JAX-RPC 通过读取 WSDL 文档,创建 JAX-RPC RMI 接口(endpoint 接口)和实现此接口的网络占位程序(stub)。客户端程序通过 RMI 接口,Stub 和 Web Service 服务端交换 SAOP 消息。 二、WSDL 基本结构 WSDL 文档是一个遵循 WSDL XML 模式的 XML 文档(文档实例);类似于:SOAP 文档是一个遵循 SOAP XML 模式的 XML 文档(文档实例); 一个 WSDL文档的根元素是 definitions 元素,WSDL 文档包含 7 个重要的元素: types, import

3、, message, portType, operations, binding 和 service 元素。 三、WSDL 声明 3.1 XML 声明 WSDL 的声明必须定义成使用:UTF-8 或者 UTF-16 编码。3.2 definition 元素 所有 WSDL 文档的根元素都是 definition 元素。 definition 元素中一般包括若干个 XML 命名空间; http:/schemas.xmlsoap.org/wsdl/是默认的命名空间,这样就可以不用显式地定义每一个 WSDL 元素的命名空间了,例如: ;文档中所有的元素缺省应该属于这个命名空间。 definition

4、 元素的的一个属性是 name,此属性不重要可以没有; 定义了 targetNamespace命名空间,它为在模式中显式创建的所有新类型均声明了 XML 命名空间,而且上面的例子中赋予了 mh 前缀。 上面的例子中:message 元素利用 name 属性指定了标签(例如:GetBookPriceRequest),这些标签会自动使用 targetNamespace 的命名空间,标签了的 messages 元素通常被称为定义。 文档中的其他元素用标签和命名空间前缀去应用定义,例如上面的例子中:input 元素是使用 mh:GetBookPriceRequest 来引用标签 GetBookPric

5、eRequest。 3.3 Types 元素 Types 元素用作一个容器,定义了自定义的特殊数据类型,在声明消息部分(有效负载)的时候,messages 定义使用了 types 元素中定义的数据类型与元素。Types 元素作为一个容器,用来定义 XML 模式内置的数据类型(即复杂类型和定制的简单类现,详细见 Web Service XML 文章)中没有描述的各种数据类型。例如:ISBN。 上面的例子中,types 元素中直接嵌套了一个完整的 W3C XML 模式文档,此文档中 targetNamespace 必须是一个有效的非空值,而且必须属于由 WSDL 文档。 3.4 Import 元素

6、 Import 元素可以让当前的文档使用其他 WSDL 文档中指定命名空间中的定义。 WSDL 的 import 元素必须声明两个属性,即 namespace 属性和 location属性。 namespace 属性必须和正导入的 WSDL 文档中声明的targetNamespace 相匹配。 location 属性必须指向一个实际的 WSDL 文档。四、WSDL 抽象接口 Message、portType 和 operation 元素用于描述 Web 服务的抽象接口,相当于JAVA 或者 C+中编程中的类的接口。其中 portType 相当于类接口的名称;operation 相当于接口中包含

7、的函数,message 相当于函数的参数和返回值。 4.1 Message 元素 Message 元素描述了 Web 服务的有效负载。相当于函数调用中的参数和返回值。 RPC 式样的 Web 服务的 message 服务 GetBulkBookPriceRequest 表示消息的输入(相当于函数的参数),GetBulkBookPriceResponse 表示消息的输出(相当于函数的返回值) Web Service 的输入和输出参数可以是多个(一个特点),每一个输入或者输出使用 part 元素定义,RPC 样式必须使用 type 来定义类型 RPC 样式用类型来数据定义过程调用,调用中的每一个元

8、素表示某一个类型的参数。 文档式样 Web 服务的 Messages 元素: 当用户采用文档式样消息传递模式的时候, messages 元素要应用 types 定义中的顶级元素。具体顶级元素的定义和 XML schema 详见 Web Server XML 文档。 消息部分使用 element 属性定义 文档式样的消息传递要交换 XML 文档,并且应用它们的顶级元素。 注:Messages 元素的 RPC/Document 试样对应了 SOAP RPC/Document 消息传递模式,详细见 Web Server SOAP 相关文档 声明错误消息: 错误使用的消息定义只能采用 Document

9、/Literal 编码样式 上面声明了匿名类型,InvalidIsbnFaultDetail 不需要 type 类型,complexType 中也不包括 name 属性,详细见 Web Service XML 相关文档。4.2 portType 元素 PortType 元素定义了 Web 服务的抽象接口,它可以由一个或者多个 operation 元素,每个 operation 元素定义了一个 RPC 样式或者文档样式的 Web 服务方法。 4.3 operation 元素 Operation 元素要用一个或者多个 messages 消息来定义它的输入、输出以及错误。 Input 表示传递到 W

10、eb 服务的有效负载;output 表示返回给客户的有效负载;可以不包括,也可以包括一个或者多个 fault 错误消息。 parameterOrder 定义了 input 和 output 消息采用的正确的顺序 使用 parameterOrder 的时候,必须包含所有输入参数部分;并且只包含不是返回类型的输出部分,如果 output 只有一个 part(上例),会假设返回值,所以不包括在parameterOrder 中 如果 parameterOrder 列出 output 中的 part 部分,那么这个将被作为 OUT 参数,如果 input 元素和 output 元素使用相同的名称声明了一

11、个部分的时候,此部分为 INOUT 参数4.4 WSDL 消息交换模式(MEP) Messaging exchange Patterns(MEP) Web 服务中使用了四种消息交换模式,即请求/ 响应、单向、通知以及恳求/ 响应模式。大多数基于 WSDL 的 web 服务使用请求/ 响应和单向两种模式。 WSDL 通过 operation 元素的 input/output 来定义使用那种模式,如果有input+output+可选的 fault 参数,那就使用请求/ 响应模式;如果只使用 input,那就使用单向模式。 在通知模式中:Web 服务将消息发送给客户,但不等待回复;一般客户通过注册来接收通知;在恳求/响应模式中类似通知模式,唯一的区别要期待客户对 Web 服务的响应。 五、WSDL 实现:Service 和 Port 元素Service 元素包含一个或者多个 Port 元素 每一个 Port 元素对应一个不同的 Web 服务,port将一个 URL 赋予一个特定的 binding,通过 location 实现 可以使两个或者多个 port 元素将不同的 URL 赋给相同的 binding,例如负载平衡和容错的时候,使用这种方法。 soapbind:address:将 Internet 地址通过 location 属性赋予一个 SOAP 绑定。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号