`
pippo25
  • 浏览: 29494 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

简要描述wsdl

阅读更多
  使用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
分享到:
评论

相关推荐

    JAVA如何调用wsdl过程详解

    对于那些熟悉wsdl或者只需要快速进行接口调用的开发者来说,文档还简要介绍了第二种方式,即创建客户端远程调用接口。这种方式虽然需要对wsdl有较深的了解,但一旦配置成功,将可以实现对远程服务的调用。 总之,本...

    Eclipse中用wsdl生成java客户端.docx

    **WSDL文件**是一种XML格式的文件,用于描述Web服务的功能、消息格式以及如何调用这些服务的信息。通过解析WSDL文件,可以自动地生成客户端代码,这些代码包含了与Web服务交互所需的所有类和方法。这一过程主要依赖...

    Java Webservice开发实例(简要说明)

    2. WSDL(Web Service Description Language):用于定义Web服务接口的XML规范,描述了服务提供的操作、消息格式等。 3. UDDI(Universal Description, Discovery, and Integration):一种服务注册中心,允许服务...

    delphi调用webservice总结(c#,delphi,java).doc

    接下来简要介绍如何构建Delphi版本的WebService。 1. **创建WebApp Debugger类型的WebService**: - 通过`New -&gt; Other -&gt; WebServices -&gt; SOAPServerApplication`创建。 综上所述,Delphi 7可以通过多种方式有效...

    axis2(web service接口文件生成工具)

    - 创建WSDL:使用XML编辑器或IDE创建描述服务的WSDL文件。 - 部署服务:将WSDL文件放入Axis2的工作目录,或通过命令行工具部署。 - 调试和测试:通过 Axis2 提供的测试工具或者自定义客户端进行服务的调用和验证...

    webService

    WebService的核心技术包括XML(可扩展标记语言)、WSDL(Web服务描述语言)和SOAP(简单对象访问协议)。在本示例中,我们将探讨这三种技术以及如何通过代码实现Web服务。 首先,XML是一种标记语言,用于描述数据...

    java开发webservice的简单例子

    Web服务基于开放标准,如XML(可扩展标记语言)、WSDL(Web服务描述语言)和SOAP(简单对象访问协议),使得服务提供者可以发布功能,而服务消费者可以跨平台调用这些功能。本示例将简要介绍如何使用Java来开发一个...

    Web Service

    - **简要介绍:** 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 的现状...

    WebService资料参考

    这项技术的核心在于使用XML(可扩展标记语言)作为数据交换格式,SOAP(简单对象访问协议)作为通信协议,WSDL(Web服务描述语言)描述服务接口,UDDI(统一描述、发现和集成)用于服务注册和查找。 1. **XML(可...

    Metro WebServices 示例

    4. `wsdl` 文件 - 描述服务接口和绑定的WSDL文件,通常名为`HelloWorld.wsdl`。 5. 可能还有一些配置文件,如`web.xml`,用于在Servlet容器(如Tomcat)中部署Web服务,以及可能的JAXB绑定文件(如`.jxb`或`.xjb`)...

    Service发布

    2. 创建一个WSDD(Web Services Deployment Descriptor)配置文件,描述服务的元数据,例如端点地址、绑定类型等。 3. 使用CXF提供的工具(如wsdl2java)将Service接口生成对应的WSDL(Web Service Definition ...

    WebService应用开发.pdf

    4. **生成WSDL**:选择“Generate WSDL in project”,WSDL(Web Service Description Language)文件描述了Web Service的接口和功能。 5. **部署与测试**:将工程部署到Tomcat服务器,通过MyEclipse的“Web ...

    论文研究-基于XMLWeb服务的电子钱包支付系统研究.pdf

    例如,使用SOAP(简单对象访问协议)作为消息格式,WSDL(Web服务描述语言)来描述服务接口,使得客户端可以知道如何与服务进行交互。 2. 统一资源标识(URI):在Web服务中,每个服务都有一个URI,它是一个全局...

    ASP.NET & WebService教学ppt(上)

    7. SOAP、WSDL和UDDI的简要介绍 学习这个PPT,开发者可以深入理解ASP.NET和WebService的基本原理,并掌握它们在实际开发中的应用。这将有助于提升Web开发技能,更好地构建分布式系统和实现跨系统通信。

    WCF培训讲稿

    - **自解释性**:服务通过元数据(如WSDL文件)来描述自身的功能和交互方式,使得其他服务可以理解如何使用它。 #### 二、WCF简要介绍 ##### 2.1 什么是WCF Windows Communication Foundation(WCF)是由微软开发...

    ONVIF2.0中文协议原版

    - **7.1 概述**:简要介绍了设备发现的基本原理。 - **7.2 操作模式**:解释了设备发现的不同操作模式。 - **7.3 发现定义**: - **7.3.1 终端参考**:定义了终端的标识符。 - **7.3.2 服务地址**:介绍了服务地址...

    安装PI之后在SAP中创建WebService.docx

    - **WebService地址**:生成的WSDL所描述的WebService地址通常为`http://&lt;host&gt;:&lt;port&gt;/sap/bc/srt/rfc/sap/&lt;WebServiceName&gt;/&lt;version&gt;/service1/binding1`。 #### 三、安装PI前后的主要差异 - **发布工具**:安装...

    gsoap 生产 webservice服务客户端托管类

    `wsdl2h`是用于从WSDL(Web服务描述语言)文件生成C或C++头文件的工具。它的常用选项包括: - `-o`:指定输出的头文件名。 - `-n`:设置命名空间前缀,替代默认的`ns`。 - `-c`:生成纯C代码,否则生成C++代码。 - `...

Global site tag (gtag.js) - Google Analytics