使用webservice也已经有一段时间了,现在比较清闲,书写一下自己的心得。
wsdl(Web Service Description Language),描述怎样提供网络服务,包括与什么协议进行绑定、参数类型、校验(schema)、访问入口等等。
wsdl的元素类型如下:
type、message、operation porttype(这四个元素是抽象的,只是定义一种描述)
service binding port是具体的实现
之间的依赖关系如下(图使用ppt作的,比较丑^_^)
[img] http://pippo25.iteye.com/upload/picture/pic/13369/9b057d82-49f9-3a7a-9a19-f346068d1fbe.jpg [/img]
1.types:分为imapleType 和 complesType两种,如:
<element name="add">
<complexType>
<sequence>
<element name="x" type="xsd:int"/>
<element name="y" type="xsd:int"/>
</sequence>
</complexType>
</element>
2.Message:描述消息,使用types类型定义的参数组成消息
如:
<wsdl:message name="addRequest">
<wsdl:part element="impl:add" name="parameters"/>
</wsdl:message>
3.Operation:描述操作。使用message描述的参数。定义了一个访问入口的 请求/响应消息对。
如:
<wsdl:operation name="subtract">
<wsdl:input message="impl:subtractRequest" name="subtractRequest"/>
<wsdl:output message="impl:subtractResponse" name="subtractResponse"/>
</wsdl:operation>
4.porttype:定义了所有操作的集合,由operation组成。
如:
<wsdl:portType name="EngineImpl">
<wsdl:operation name="add">
<wsdl:input message="impl:addRequest" name="addRequest"/>
<wsdl:output message="impl:addResponse" name="addResponse"/>
</wsdl:operation>
<wsdl:operation name="subtract">
<wsdl:input message="impl:subtractRequest" name="subtractRequest"/>
<wsdl:output message="impl:subtractResponse" name="subtractResponse"/>
</wsdl:operation>
<wsdl:operation name="divide">
<wsdl:input message="impl:divideRequest" name="divideRequest"/>
<wsdl:output message="impl:divideResponse" name="divideResponse"/>
</wsdl:operation>
<wsdl:operation name="multiply">
<wsdl:input message="impl:multiplyRequest" name="multiplyRequest"/>
<wsdl:output message="impl:multiplyResponse" name="multiplyResponse"/>
</wsdl:operation>
</wsdl:portType>
上面的四个元素只是描述,没有涉及到真正的服务实现方式。
5.Service:相关服务访问点的集合。
6.Binding:结构定义了某个PortType与某一种具体的网络传输协议或消息传输协议相绑定,从这一层次开始,描述的内容就与具体服务的部署相关了。比如可以将PortType与SOAP/HTTP绑定,也可以将PortType与MIME/SMTP相绑定等。
如:
<wsdl:binding name="EngineImplSoapBinding" type="impl:EngineImpl">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="add">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="addRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="addResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="subtract">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="subtractRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="subtractResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="divide">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="divideRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="divideResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="multiply">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="multiplyRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="multiplyResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
7.port:Port描述的是一个服务访问入口的部署细节,包括通过哪个Web地址(URL)来访问,应当使用怎样的消息调用模式来访问等。其中消息调用模式则是使用Binding结构来表示。
如:
<wsdl:port binding="impl:EngineImplSoapBinding" name="EngineImpl">
<wsdlsoap:address location="http://localhost:8010/WebService/services/EngineImpl"/>
</wsdl:port>
一个WSDL中,definition是整个文档的根元素,一个文档中可能存在多个Service元素,service是服务的入口点。 Service 中可能有多个port,每个port对应一个PortType,PortType可能对应一组operation
分享到:
相关推荐
对于那些熟悉wsdl或者只需要快速进行接口调用的开发者来说,文档还简要介绍了第二种方式,即创建客户端远程调用接口。这种方式虽然需要对wsdl有较深的了解,但一旦配置成功,将可以实现对远程服务的调用。 总之,本...
**WSDL文件**是一种XML格式的文件,用于描述Web服务的功能、消息格式以及如何调用这些服务的信息。通过解析WSDL文件,可以自动地生成客户端代码,这些代码包含了与Web服务交互所需的所有类和方法。这一过程主要依赖...
2. WSDL(Web Service Description Language):用于定义Web服务接口的XML规范,描述了服务提供的操作、消息格式等。 3. UDDI(Universal Description, Discovery, and Integration):一种服务注册中心,允许服务...
接下来简要介绍如何构建Delphi版本的WebService。 1. **创建WebApp Debugger类型的WebService**: - 通过`New -> Other -> WebServices -> SOAPServerApplication`创建。 综上所述,Delphi 7可以通过多种方式有效...
- 创建WSDL:使用XML编辑器或IDE创建描述服务的WSDL文件。 - 部署服务:将WSDL文件放入Axis2的工作目录,或通过命令行工具部署。 - 调试和测试:通过 Axis2 提供的测试工具或者自定义客户端进行服务的调用和验证...
WebService的核心技术包括XML(可扩展标记语言)、WSDL(Web服务描述语言)和SOAP(简单对象访问协议)。在本示例中,我们将探讨这三种技术以及如何通过代码实现Web服务。 首先,XML是一种标记语言,用于描述数据...
Web服务基于开放标准,如XML(可扩展标记语言)、WSDL(Web服务描述语言)和SOAP(简单对象访问协议),使得服务提供者可以发布功能,而服务消费者可以跨平台调用这些功能。本示例将简要介绍如何使用Java来开发一个...
- **简要介绍:** SOAP、WSDL。 - **基于 JAX-RPC API 的 Web 服务开发**。 - **JAX-RPC 1.0 API 的关键特性**。 - **JAX-RPC API、J2EE 1.4 平台以及 Java Web Services Developer Pack**。 - **JAX-RPC API 的现状...
这项技术的核心在于使用XML(可扩展标记语言)作为数据交换格式,SOAP(简单对象访问协议)作为通信协议,WSDL(Web服务描述语言)描述服务接口,UDDI(统一描述、发现和集成)用于服务注册和查找。 1. **XML(可...
4. `wsdl` 文件 - 描述服务接口和绑定的WSDL文件,通常名为`HelloWorld.wsdl`。 5. 可能还有一些配置文件,如`web.xml`,用于在Servlet容器(如Tomcat)中部署Web服务,以及可能的JAXB绑定文件(如`.jxb`或`.xjb`)...
2. 创建一个WSDD(Web Services Deployment Descriptor)配置文件,描述服务的元数据,例如端点地址、绑定类型等。 3. 使用CXF提供的工具(如wsdl2java)将Service接口生成对应的WSDL(Web Service Definition ...
4. **生成WSDL**:选择“Generate WSDL in project”,WSDL(Web Service Description Language)文件描述了Web Service的接口和功能。 5. **部署与测试**:将工程部署到Tomcat服务器,通过MyEclipse的“Web ...
例如,使用SOAP(简单对象访问协议)作为消息格式,WSDL(Web服务描述语言)来描述服务接口,使得客户端可以知道如何与服务进行交互。 2. 统一资源标识(URI):在Web服务中,每个服务都有一个URI,它是一个全局...
7. SOAP、WSDL和UDDI的简要介绍 学习这个PPT,开发者可以深入理解ASP.NET和WebService的基本原理,并掌握它们在实际开发中的应用。这将有助于提升Web开发技能,更好地构建分布式系统和实现跨系统通信。
- **WSDL**: Web服务描述语言,是一种XML格式的文档,用于描述Web服务的名称、方法及其参数等详细信息。WSDL文件通常由软件自动生成,并用于指导客户端如何调用Web服务。 **2.2.4 UDDI (Universal Description, ...
- **自解释性**:服务通过元数据(如WSDL文件)来描述自身的功能和交互方式,使得其他服务可以理解如何使用它。 #### 二、WCF简要介绍 ##### 2.1 什么是WCF Windows Communication Foundation(WCF)是由微软开发...
- **7.1 概述**:简要介绍了设备发现的基本原理。 - **7.2 操作模式**:解释了设备发现的不同操作模式。 - **7.3 发现定义**: - **7.3.1 终端参考**:定义了终端的标识符。 - **7.3.2 服务地址**:介绍了服务地址...
- **WebService地址**:生成的WSDL所描述的WebService地址通常为`http://<host>:<port>/sap/bc/srt/rfc/sap/<WebServiceName>/<version>/service1/binding1`。 #### 三、安装PI前后的主要差异 - **发布工具**:安装...
`wsdl2h`是用于从WSDL(Web服务描述语言)文件生成C或C++头文件的工具。它的常用选项包括: - `-o`:指定输出的头文件名。 - `-n`:设置命名空间前缀,替代默认的`ns`。 - `-c`:生成纯C代码,否则生成C++代码。 - `...