`
忆梦竹
  • 浏览: 65846 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Web Service学习小结——WSDL文档中的节点与java类的联系

阅读更多
WSDL:是web service description language的首字母缩写。意思是web服务描述语言。
那么他到底描述了什么东西呢?
根据我这几天在网上的各种信息收录。它主要描述了三方面的内容 即 what, how, where
what:描述了web service能够做什么
how:描述我们应该如何访问web service
where:描述我们的服务在哪里

为了讲解WSDL文件的结构以及java类的关系,我们必然要先看看WSDL文档长得如何。
我们利用myeclipse创建一个wsdl文件  步骤如图:





创建后的文件内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.example.org/NewWSDLFile/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="NewWSDLFile" targetNamespace="http://www.example.org/NewWSDLFile/">
  
  <wsdl:types>
    <xsd:schema targetNamespace="http://www.example.org/NewWSDLFile/">
      <xsd:element name="NewOperation">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="in" type="xsd:string"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="NewOperationResponse">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="out" type="xsd:string"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:schema>
  </wsdl:types>
 
  <wsdl:message name="NewOperationRequest">
    <wsdl:part element="tns:NewOperation" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="NewOperationResponse">
    <wsdl:part element="tns:NewOperationResponse" name="parameters"/>
  </wsdl:message>
 
  <wsdl:portType name="NewWSDLFile">
    <wsdl:operation name="NewOperation">
      <wsdl:input message="tns:NewOperationRequest"/>
      <wsdl:output message="tns:NewOperationResponse"/>
    </wsdl:operation>
  </wsdl:portType>
 
  <wsdl:binding name="NewWSDLFileSOAP" type="tns:NewWSDLFile">
   
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
   
    <wsdl:operation name="NewOperation">
      <soap:operation soapAction="http://www.example.org/NewWSDLFile/NewOperation"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
 
  <wsdl:service name="NewWSDLFile">
    <wsdl:port binding="tns:NewWSDLFileSOAP" name="NewWSDLFileSOAP">
      <soap:address location="http://www.example.org/"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

通过myeclipse帮我们创建的wsdl文档,我们观察它的结构发现:
一份WSDL文档definitions基本上有以下部分:
types,message,portType,binding,service。
知道包含了这些元素,我们先解释这些元素都是干嘛的,然后在说与java类的对应关系,那时候你会惊叹——“哦,原来是这样”。 好吧,不扯了。
types:定义了文档中要用的类型,由于web service跟编程语言是没有关系的,那么我们这里的类型必然是公用的,而XML是独立于平台的语言。所以,这里使用的是XML Schema的类型,在我们刚刚创建的文档中,他包含了两个元素,分别是newOperation和newOperationResponse,这两个元素都是复杂类型的,如果你对xml的schema还不怎么了解,可以到网上找找。必要的情况下,我也会写成简单的博客了。
message:通信消息数据结构的抽象类型化定义。(好吧,这个确实很抽象)
portType:对于某个访问入口点类型所支持操作的抽象集合
binding:包含了如何将抽象接口的元素(portType)转变为具体表示的细节,具体表示也就是指特定的数据格式和协议的结合;特定端口类型的具体协议和数据格式规范的绑定。
service:这是一个粗糙命名的元素,代表端口的集合;相关服务点的集合。

看完上面的定义,貌似很复杂,确实很不好理解。但是把他对应到java类的关系会好理解很多。下面的讲解都跟上面的文档关联起来讲的。

types这个跟xml的schema有关的。在schema定义里面的element是代表可以在xml文档中写的元素。牵强一点说,类似于我们java中的变量。

message,上面说的是数据结构的抽象化定义,其实就是参数的定义。在而参数的具体信息则由part表示,我们在上面的文档中已然看到在message元素的子元素中有part元素。而part元素就是我们的参数定义。不管输入参数还是输出参数,我们都是用一个part表示一个参数。好比我们的java类中。有一个方法有四个参数,那么我们就需要定义四个part来表示这四个参数,然后将这是个part定义在一个message中,而这个message则表示这个java方法的输入参数。 但是,我们在契约优先的开发模式中,有一种是基于封装的模式,也就是说,把所有的输入参数都当成一个复杂类型,而这个复杂类型用一个element表示。然后在将这个element作为part的属性。 这种方式也是可行的。甚至是推荐的。

portType:简单的说就是接口的定义。我们在java中,每一个接口可能会声明多个方法,对应的,在portType我们也可以声明多个方法,而方法的在WSDL中是用<operation>来表示的、

<wsdl:operation name="NewOperation">
      <wsdl:input message="tns:NewOperationRequest"/>
      <wsdl:output message="tns:NewOperationResponse"/>
    </wsdl:operation>

operation可以包含input,output,fault。在我们创建的文档中包含了input和output分别代表输入参数和输出参数(即我们的返回值)。input的message属性就指向我们所定义的输入参数同理,output指的就是我们的返回值(引申义就是我们的代表返回值得message应该只有一个part)

参考:http://www.w3.org/TR/wsdl.html

继续学习中、、、

谢谢阅读


  • 大小: 33.8 KB
  • 大小: 47.2 KB
  • 大小: 31 KB
  • 大小: 35.5 KB
0
0
分享到:
评论

相关推荐

    Java解析wsdl文档获取具体的方法与参数

    总结,Java解析WSDL文档获取具体的方法与参数涉及的主要知识点包括:XML解析(DOM)、JAX-WS框架、`javax.xml.ws.Service`类的使用,以及如何基于WSDL生成服务客户端代码。理解这些概念,将有助于开发和消费Web服务...

    Web Service学习小结——基于JDK自带JAX-WS实现的web service

    它简化了Web服务开发过程,提供了从Java类到WSDL(Web服务描述语言)的自动绑定,反之亦然。以下是我们将涉及的关键概念: 1. **服务端开发**: - **SEI(Service Endpoint Interface)**: 这是定义Web服务接口的...

    把wsdl文件转换成java类 使用wsdl2Java工具

    为了在Java环境中与这些Web服务交互,我们需要将WSDL文件转换为Java类,这就是`wsdl2java`工具的作用。 `wsdl2java`是Apache Axis项目的一部分,它是一个强大的工具,可以自动生成Java客户端和服务端代码,这些代码...

    Web服务搜索与执行引擎——WSDL与SOAP

    Web服务搜索与执行引擎的核心是Web服务描述语言(WSDL)和简单对象访问协议(SOAP)。WSDL是一种基于XML的规范,用于定义Web服务的接口,描述服务提供的操作、输入和输出消息,以及服务的位置和协议。由于其基于XML...

    java解析wsdl文档获取方法与参数

    在Java开发中,有时我们需要与Web服务进行交互,这时候就需要用到WSDL(Web Services Description Language)文档。WSDL是一种XML格式,它定义了服务的位置、接口以及如何调用这些服务。本文将深入探讨如何使用Java...

    Web+Service学习SOAP协议简介WSDL简介

    Web Service 学习 SOAP 协议简介 WSDL 简介 Web Service 概述 Web Service 是一种软件系统,旨在支持跨网络的机器间相互操作交互。它通常被定义为一组模块化的 API,可以通过网络进行调用,以执行远程系统的请求...

    把wsdl文件或地址转化成java代码工具

    这样,开发者无需手动编写调用Web服务的Java代码,只需导入WSDL文件,MyEclipse就能自动生成相应的Java客户端 stub类,这些类提供了与Web服务交互的方法。 具体步骤如下: 1. 打开MyEclipse,创建一个新的Web项目...

    Web Service描述语言 WSDL 详解.pdf

    标题:"Web Service描述语言 WSDL 详解.pdf" 描述:"Web Service描述语言 WSDL 详解.pdf" 标签:"service web wsdl" 部分内容:Web Service描述语言(WSDL)向这种WebService的提供商和用户推出了方便的协调工作的...

    使用CXF: Java 2 WSDL

    "Java 2 WSDL"指的是从Java类生成WSDL(Web Services Description Language)文件的过程。这通常在我们需要为已有的Java接口创建Web服务时进行。CXF提供了强大的工具,能够帮助开发者从Java接口自动生成WSDL,简化了...

    Java6开发的web service,发布https的wsdl地址

    本篇文章将深入探讨使用Java6开发支持HTTPS的Web Service,以及如何发布其WSDL(Web Service Description Language)地址。 首先,让我们了解Web Service的基本概念。Web服务是一种基于网络的、平台无关的接口,它...

    WSDL生成Web Service java客户端

    本教程将围绕“WSDL生成Web Service java客户端”这一主题,详细介绍如何利用WSDL文件创建Java客户端来调用Web服务。 首先,WSDL文件是一种XML格式的文档,它描述了一个Web服务的接口,包括服务提供的操作、消息...

    WSDL转JAVA类工具

    在IT行业中,Web服务是不同系统间通信的重要方式,而WSDL(Web Service Description Language)是一种XML格式,用于定义Web服务的接口和消息交换。它描述了服务的端点、操作、输入和输出消息,以及服务如何通过网络...

    Web Service 解读天气预报WSDL获取天气程序

    在这个特定的项目中,我们关注的是如何使用Web Service来获取天气预报信息,特别是通过解析WSDL(Web Services Description Language)文件。WSDL是一种XML格式,用于定义服务的位置、接口以及如何调用这些服务。 ...

    Java2WSDL和WSDL2Java操作指南.doc

    Java2WSDL 和 WSDL2Java 是两种常用的 Web 服务开发工具,分别用于将 Java 类转换为 WSDL 文件和将 WSDL 文件转换为 Java 代码。在本文中,我们将详细介绍 Java2WSDL 和 WSDL2Java 的使用方法和参数设置。 Java2...

    WSDL学习文档(学习web服务必用)

    WSDL文档是一个XML文档,遵循WSDL XML模式,它描述了Web服务的访问点,也就是端口,客户端可以通过这些端口与服务进行交互。服务访问点的抽象描述包括操作和它们相关的请求/响应消息。这些抽象定义与具体的传输协议...

    Java6 开发的Web Service, 发布https的wsdl地址,服务端打包程序

    首先,我们需要理解Java6中的JAX-WS(Java API for XML Web Services)框架,它是Java平台用于构建和部署Web Service的标准。通过JAX-WS,开发者可以创建SOAP(Simple Object Access Protocol)服务,这是Web ...

    java的wsdl语言实现web service的服务创建和调用实例

    Java中的Web Service是一种基于XML(eXtensible Markup Language)的通信协议,用于不同系统间的交互,它允许应用程序通过网络共享功能。WSDL(Web Services Description Language)是用于定义Web Service接口的一种...

    wsdl生成java代码工具

    在IT行业中,Web服务是应用程序之间进行通信的一种标准方法,而WSDL(Web Services Description Language)则是一种XML格式,用于定义Web服务的具体操作、消息结构、接口和绑定。本篇文章将详细探讨“wsdl生成java...

    Axis 把WSDL生成JAVA类

    ### Axis将WSDL转换为JAVA类:深入了解与实践 #### 核心概念解析: **Axis** 是Apache组织下的一个开源项目,它提供了在Java平台上创建和调用Web服务的能力。Axis实现了SOAP(Simple Object Access Protocol)协议...

Global site tag (gtag.js) - Google Analytics