这里主要是对昨天的简单的WS示例生成的wsdl进行简单的分析。
很多节点的意思都是自己的理解,也有简单的参考外面的文档,可能名称描述不是很合理或者意思理解有误,
也有部分不明白的地方,也希望有看到的朋友指明不足的地方和我描述的疑问。感激不尽。
WebService学习之路一: http://trylin.iteye.com/blog/1906819
二、理解WSDL
wsdl中有类似java对象的引用关系,通过wsdl我们可以知道此服务对外的地址,方法,以及方法的输入输出参数类型等。
访问我们发布的WS http://localhost:8888/WS?wsdl
Wsdl的元素根节点是 definitions,从单词的意思可以看出是对整个wsdl文件的解释。
xmlns:tns=http://impl.service.ws.trylin.com/ xml命名空间
targetNamespace="http://impl.service.ws.trylin.com/".//表示下面的节点都是指向的这个命名空间
name="TestImplService" //整个wsdl 的一个命名 这里默认是服务名
definitions下有
<import namespace="http://service.ws.trylin.com/" location="http://localhost:8888/WS?wsdl=1"/>
这个理解为xml导入并给定命名空间,location为xml地址,下面会对这个导入的xml简单理解。
definitions子元素的定义主要包含两部分
<!--[if !supportLists]-->1、 <!--[endif]-->具体定义
<!--[if !supportLists]-->2、 <!--[endif]-->抽象定义
参考:http://www.blogjava.net/baoyaer/articles/116413.html
1、具体定义
通过具体定义,可以简单的看到服务对外的服务名称和服务方法。
1.1、binding
xmlns:ns1=” http://service.ws.trylin.com/” 相当与引用一个命名空间下的xml元素
type="ns1:ITest" type类型 ns1对应上面的空间名,表示这个ITest是属于ns1指向的空间中定义的类型
soap:binding声明将把 SOAP 作为绑定和传输服务使用 style属性可选 rpc/ document
operation 表示服务发布的几个方法
input /output分别指的是方法的输入输入 其中soap:body use="literal" use的取值也是可选的 literal/ encoded
关于 soap:binding中的style属性 和 soap:body中的use属性的区别,我没能理解,希望有人看懂后,指点一下
参考的链接:http://www.ibm.com/developerworks/cn/webservices/ws-whichwsdl/
1.2、service
这个节点主要是对发布服务的描述 name属性 表示对外发布的服务名称
Port 服务端口声明 binding="tns:TestImplPortBinding" 这里是指向我们之前看到的binding对象。soap:address 服务对外的地址。
2、抽象定义
通过抽象定义,可以具体的了解到服务对外的一些具体信息,比如包含的那些类型的数据,方法的参数,返回值等等。
找到<import namespace="http://service.ws.trylin.com/" location="http://localhost:8888/WS?wsdl=1"/>
在浏览器中输入 http://localhost:8888/WS?wsdl=1 回车
2.1、Types
Types表示的是类型,从xsd:import 可以看出 这里又是一个引用的一个schema
浏览器中输入schemaLocation中的 http://localhost:8888/WS?xsd=1
<xs:element name="add" type="tns:add"/>
<xs:element name="addResponse" type="tns:addResponse"/>
这里表示的是服务对外的方法的 输入输出对象,找到引用的 tns:add tns:addResponse
<xs:complexType name="add">
<xs:sequence>
<!—arg表示输入对象的参数 0表示顺序 arg0不便于理解,后面会介绍怎么改变参数的名称
参数类型是 type int-->
<xs:element name="arg0" type="xs:int"/>
<xs:element name="arg1" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="addResponse">
<xs:sequence>
<!—return表示返回 返回类型是int -->
<xs:element name="return" type="xs:int"/>
</xs:sequence>
</xs:complexType>
这里对输入输出对象的简单描述
2.2、Message
Message是对服务对外方法的描述,每一个方法分输入和输出两部分
<message name="add">
<part name="parameters" element="tns:add"/>
</message>
<message name="addResponse">
<part name="parameters" element="tns:addResponse"/>
</message>
Element=”tns:add”这里把具体的描述指向了 Types中的元素。
3、portType
PortType 服务类的具体定义 name定义的类型名称
operation name="add" 定义的方法
<input message="tns:add"/>
<output message="tns:addResponse"/>
Input方法的输入类型
output 方法的输入类型
大概的描述,自己整理起来也有点混乱的感觉
尤其是 关于 soap:binding中的style属性 和 soap:body中的use属性的区别(各位知道的话,请不要吝啬哦,打几个字,在回复中告诉我,谢谢。呵呵。。。)
关于这里,我想以后还得回过头查下相关的资料,先把全部的视频看完,在把自己的一些疑问一个个解决,
不求一次性全部理解,囫囵吞枣的过一遍,然后在仔细的再看一遍,这可能也是一种好的学习方法。
WebService学习之路三:http://trylin.iteye.com/blog/1908269
相关推荐
【Eclipse下WebService学习】 在IT领域,WebService是一种基于开放标准的、允许不同系统之间进行交互的技术。在Eclipse这个流行的Java集成开发环境中,开发者可以方便地创建、部署和测试WebService。本文档主要介绍...
【WebService学习之路三】 在IT领域,WebService是一种用于构建分布式应用程序的技术,它允许不同系统间的交互,不受平台或编程语言的限制。本篇主要聚焦于WebService的学习,通过深入理解其原理和实践,来提升我们...
在“WebService CXF学习:整合Spring框架”的主题下,我们可能将深入学习如何配置和管理CXF服务,包括创建服务端点、定义服务接口、编写服务实现、设置客户端代理,以及如何利用Spring的配置和依赖注入来简化这些...
【WebService学习】 WebService是一种基于互联网的、松散耦合的分布式计算模型,它允许不同的系统之间进行数据交换和业务交互。这项技术的核心是利用XML(可扩展标记语言)作为数据交换的标准格式,SOAP(简单对象...
WebService学习资料(很全)WebService学习资料(很全)WebService学习资料(很全)WebService学习资料(很全)WebService学习资料(很全)WebService学习资料(很全)
springboot2.0webService学习
【WebService学习之路四】 在IT领域,WebService是一种基于标准协议(如SOAP、WSDL和UDDI)的开放式网络服务,允许不同系统间的应用程序通过互联网进行通信。本篇将深入探讨WebService的学习路径,重点关注其核心...
webservice学习资料和样例webservice学习资料和样例webservice学习资料和样例webservice学习资料和样例webservice学习资料和样例webservice学习资料和样例
WebService学习和了解 WebService的优点 SOAP是什么?WSDL是什么?
本教程以"webservice 学习的c#版本实例"为主题,将引导你深入理解Webservice的原理以及C#中实现Webservice的方法。 首先,让我们了解ASMX Web Service。ASMX是.NET Framework早期用于构建Web服务的技术,它基于SOAP...
WebService学习过程中,知识点的总结,和例子。
**WebService学习笔记** WebService是一种基于互联网的、平台和语言无关的接口规范,它允许不同系统间的应用程序进行交互和数据共享。这项技术的核心是利用XML(可扩展标记语言)作为数据交换格式,SOAP(简单对象...
【Eclipse下WebService学习】 在Eclipse环境下学习和开发WebService是一项重要的技能,尤其对于Java开发者而言。WebService是一种基于标准的、平台无关的通信机制,它允许不同系统间的应用程序通过网络进行互操作。...
Java注解是Java编程语言中的一个重要特性,它允许在代码中添加元数据,为编译器、解释器或任何其他工具提供额外的信息。在Java Web服务...通过学习和掌握这些知识,开发者可以更高效地构建和维护Web服务应用。
webservice学习报告,理论与实践
【WebService学习笔记0001】 在IT领域,WebService是一种基于开放标准(如XML、SOAP、WSDL和UDDI)的互操作性技术,它允许不同系统间的应用程序通过网络进行通信。本学习笔记将围绕WebService的核心概念、工作原理...
【标题】:“webService学习资料” 【描述】:“webService学习资料,内含有思维导图两张,webservice资料整理,欢饮下载。” 【标签】:“webService” 在信息技术领域,Web服务(Web Service)是一种基于互联网...
webservice 学习资料webservice 学习资料webservice 学习资料