WSDL说明

WSDL说明WSDL 是一种 XMLApplicati 他将 Web 服务描述定义为一组服务访问点 客户端可以通过这些服务访问点对包含面向文档信息或面向过程调用的服务进行访问 类似远程过程调用 WSDL 首先对访问的操作和访问时使用的请求 响应消息进行抽象描述 然后将其绑定到具体的传输协议和消息格式上 以最终定义具体部署的服务访问点 相关的具体部署的服务访问点通过组合就成为抽象的 Web 服务 WSDL

WSDL 是一种XML Application,他将Web服务描述定义为一组服务访问点,客户端可以通过这些服务访问点对包含面向文档信息或面向过程调用的服务进行访问(类似远程过程调用)。WSDL首先对访问的操作和访问时使用的请求/响应消息进行抽象描述,然后将其绑定到具体的传输协议和消息格式上,以最终定义具体部署的服务访问点。相关的具体部署的服务访问点通过组合就成为抽象的Web服务。

WSDL 文档将Web服务定义为服务访问点或端口的集合。在 WSDL 中,由于服务访问点和消息的抽象定义已从具体的服务部署或数据格式绑定中分离出来,因此可以对抽象定义进行再次使用:消息,指对交换数据的抽象描述;而端口类型,指操作的抽象集合。用于特定端口类型的具体协议和数据格式规范构成了可以再次使用的绑定。将Web访问地址与可再次使用的绑定相关联,可以定义一个端口,而端口的集合则定义为服务。
WSDL需要描述两部分的内容,一是接口,二是实现。
接口描述了服务的格式,例如服务名,服务参数,服务结果。
服务实现则描述了用户所对应提供的输入如何转换成符合某一实现协议的形式。一般情况下,我们使用SOAP作为实现协议,那么客户端在分析了WSDL文件以后,将会把用户的输入转换成SOAP请求。
 
WSDL说明
            WSDL元素的对象结构示意图
WSDL说明

 WSDL文件示例                  



xs
=”http://www.w3.org/2001/XMLSchema”

       xmlns:soap=”http://schemas.xmlsoap.org/wsdl/soap/”

       xmlns:wsdl=”http://schemas.xmlsoap.org/wsdl/”

       xmlns:tns=”http://www.daily-moon.com/classifieds”

       xmlns:ns1=”http://org.apache.axis2/xsd”

       targetNamespace=”http://www.daily-moon.com/classifieds”>

 

  

         targetNamespace=”http://org.apache.axis2/xsd”

         elementFormDefault=”unqualified”

         attributeFormDefault=”unqualified”>

     
      

        

          

          

        

      

    

     

      

        

          

        

      

    

  

 

 
  

ns1:createNewAdRequest
” />

 
  

 

 

ClassifiedServicePortType
“>

   

createNewAd
“>

    

tns:createNewAdRequestMessage
” />

    

tns
:createNewAdResponseMessage” />

  

   


  


  


 

 

 name=”ClassifiedServiceBinding

              type=”tns:ClassifiedServicePortType“>

   

                style=”document” />

   

createNewAd
“>

    

    

      

                 namespace=”http://ws.apache.org/axis2″ />

    

    

      

                 namespace=”http://ws.apache.org/axis2″ />

    

  

   


  


  


 

 

  

             binding=”tns:ClassifiedServiceBinding“>

    

“http://www.daily-moon.com:8080/axis2/services/ClassifiedService” />

  

 

 注意:在WSDL 2.0中:

仅允许每个 message 包含一个 part;

portType 的名称已更改为 interface;

soapAction 已经完全从 WSDL 2.0 中删除了;

另一个更改与“消息交换模式”的正式规范有关。WSDL 2.0 不依赖于用户确定是同时存在输入和输出还是仅有一个输入消息,它允许您具体地声明所使用的模式

    …

  

            pattern=http://www.w3.org/2006/01/wsdl/in-only”>

    
  

  

              pattern=”http://www.w3.org/2006/01/wsdl/in-out”>

    
    
  

 

——————————————–

有关命名空间的说明

和许多编程语言一样,在 XML 中,经常有必要为各种元素和属性指定“命名空间”。这样就能方便地对具有相同名称但用途不同(来源也可能不同)的元素进行区分。XML 通过 URI 引用命名空间。例如,XML 模式命名空间为 http://www.w3.org/2001/XMLSchema。不过,为了方便起见,还为其分配了一个别名(或前缀)。例如,此处的模式命名空间的前缀为 xs:。请记住,别名只是一个别名而已,重要的是 URI。因此,属于 ns1: 命名空间的元素或属性也是模式的 targetNamespace 的一部分。

———————————————



一个WSDL文档里一般包含







这几个元素.


service 使用一个特殊的 binding,binding是 portType 的一个实现。portType 定义操作,而操作由 messages 组成。消息中包含由 types 部分中定义的 XML 组成。

  • Types – 定义Web服务里用到的,XML Schema定义的数据类型以外的自定义数据类型,对于我们自定义的类(Book),会对应到一个

    ,其中用

    元素指定每个参数的类型。

  • JAX-RPC规范中规定了Java语言的数据类型到XML Schema数据类型的映射,例如int<->xsd:int、java.lang.String<->xsd:string等等,还有数组的映射方式。
  • Message – 具体定义了在通信中使用的消息的数据结构,Message元素包含了一组Part元素,每个Part元素都是最终消息的一个组成部分,每个Part都会引用一个DataType来表示它的结构。例如addBook()方法有一个Book类型的参数,则在WSDL中会有 的描述。
  • Operation – 对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求/响应消息对。
  • PortType – PortType具体定义了一种服务访问入口的类型,何谓访问入口的类型呢?就是传入/传出消息的模式及其格式。一个PortType可以包含若干个Operation,而一个Operation则是指访问入口支持的一种类型的调用。在WSDL里面支持四种访问入口调用的模式: 在这里请求指的是从客户端到Web服务端,而响应指的是从Web服务端到客户端。PortType的定义中会引用消息定义部分的一个到两个消息,作为请求或响应消息的格式。比如,一个股票查询的访问入口可能就会支持两种请求消息,一种请求消息中指明股票代码,而另一种请求消息中则会指明股票的名称,响应消息可能都是股票的价格等等。
    1. 单请求;
    2. 单响应;
    3. 请求/响应;
    4. 响应/请求。
  • 我们看一个WSDL文档,一般就该先找 元素,看看这个WSDL代表的Web服务里都有哪些方法,它们的参数和返回值是什么。这些方法是在 里用

    元素表示的,

    可以有
    子元素,表示方法的输入和输出。注意,方法可以是只有输入或只有输出的。

  • Binding- 包含了如何将抽象接口的元素(portType)转变为具体表示的细节,具体表示也就是指特定的数据格式和协议的结合;特定端口类型的具体协议和数据格式规范的绑定。JAX-RPC规范规定,SOAP绑定可以有rpc和document两种类型,分别表示远程过程调用和基于消息的方式。use属性可以是encoded或literal,对于前者要支持rpc的方式,对于后者要支持rpc和document的方式。
  • port- 定义为协议/数据格式绑定与具体Web访问地址组合的单个服务访问点。
  • service- 描述的是一个具体的被部署的Web服务所提供的所有访问入口的部署细节,一个Service往往会包含多个服务访问入口,而每个访问入口都会使用一个Port元素来描述。
  • Port描述的是一个服务访问入口的部署细节,包括通过哪个Web地址(URL)来访问,应当使用怎样的消息调用模式来访问等。其中消息调用模式则是使用Binding结构来表示。Binding结构定义了某个PortType与某一种具体的网络传输协议或消息传输协议相绑定,从这一层次开始,描述的内容就与具体服务的部署相关了。比如可以将PortType与SOAP/HTTP绑定,也可以将PortType与MIME/SMTP相绑定等。
  • portType(与message和type元素的细节相结合)描述了Web服务是什么,binding元素描述了如何使用Web服务,port及service元素描述了Web服务的位置。
  • 在介绍了WSDL的主要元素之后,大家会发现,WSDL的设计理念完全继承了以XML为基础的当代Web技术标准的一贯设计理念:开放。WSDL允许通过扩展使用其他的类型定义语言(不光是XML Schema),允许使用多种网络传输协议和消息格式(不光是在规范中定义的这些:SOAP/HTTP,HTTP-GET/POST以及MIME等)。

原文地址: 点击这里  进一步学习

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220043.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午9:22
下一篇 2026年3月17日 下午9:23


相关推荐

  • 树莓派连接WIFI显示无效参数「建议收藏」

    树莓派连接WIFI显示无效参数「建议收藏」把你的wifi名字从中文改成英文或者数字就ok了

    2022年5月1日
    54
  • HDU 1394 Minimum Inversion Number (数据结构-段树)

    HDU 1394 Minimum Inversion Number (数据结构-段树)

    2022年1月16日
    54
  • 如何给自己的网站申请SSL数字证书以支持https

    如何给自己的网站申请SSL数字证书以支持httpsbr 要支持 https 需要一个 ssl 数字证书 需要其它机构来签名 大概过程如下 本文是转载 但有修改 br 1 首先保证安装了 Openssl 并且能够在在终端执行它 br openssl 是个很强大的工具 它有 windows 版本 可以试试 windows 版本 br 但是 windows 版本不稳定 可能会执行出错 br 其实你找个 linux 主机 一般就有 openssl linux 下装起来更方便 openssl 本来属于 linuxbr 或者 vmware 装个 linux 也行 我们就用 o

    2026年3月17日
    2
  • c++实现个人通讯录

    c++实现个人通讯录

    2021年10月2日
    159
  • 实现安全登录的两种方法

    实现安全登录的两种方法登录安全——拦截器和过滤器或权限框架的使用本次我们将采用两种方法实现登录的安全性,首先介绍拦截器和过滤器。一、 过滤器和拦截器:过滤器产生的时间/开始工作的时间:进入Tomcat之后,但是在进servlet之前。Interceptor进入了servlet所以拦截器拦截的是动作,而过滤器拦截的是不合理的跳转页面。1、配置和使用拦截器。<mvc:interceptors>&…

    2022年4月19日
    50
  • OpenStack配置使用sriov

    OpenStack配置使用sriov环境说明 OpenStack 版本为 pike 一 开启 SRIOV bios 中默认开启 请先做好备份 博主对控制和计算节点都做了修改 如有问题 还请指正 在 etc default grub 中增加 intel iommu on vi etc default grubGRUB CMDLINE LINUX crashkernel autorhgbquie iommu on 执行 grub2 mkconfig o boot grub2 grub cfgreboot

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号