Webservice开全程技术指导_第1页
Webservice开全程技术指导_第2页
Webservice开全程技术指导_第3页
Webservice开全程技术指导_第4页
Webservice开全程技术指导_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Webservice开发全程技术指导(一)一、Web Service基本概念Web Service由两部分组成·SOAP-Web Service之间的基本通信协议。WSDL-Web Service描述语言,它定义了Web Service做什么,怎么做和查询的信息。二、什么是 Webservice?Web 是使应用程序可以与平台和编程语言无关的方式进行相互通信的一项技术。Web 服务是一个软件接口,它描述了一组可以在网络上通过标准化的 XML 消息传递访问的操作。它使用基于 XML 语言的协议来描述要执行的操作或者要与另一个 Web 服务交换的数据。一组以这种方式交互的 Web 服务在

2、面向服务的体系结构(Service-Oriented Architecture,SOA)中定义了特殊的 Web 服务应用程序。三、什么是SOAP?SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的轻量级协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一种语言相互通信。SOAP包括四个部分:SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的

3、框架;SOAP编码规则(encoding rules),用于表示应用程序需要使用的数据类型的实例;SOAP RPC表示(RPC representation),表示远程过程调用和应答的协定;SOAP绑定(binding),使用底层协议交换信息。应用中比较关注的是envelop,由一个或多个Header和一个Body组成。SOAP在可互操作的基础 Web 服务协议栈中的位置。四、 什么是WSDL?WSDL(Web Service Description Language)Web服务器描述语言是用XML文档来描述Web服务的标准,是Web服务的接口定义语言,由Ariba、Intel、IBM、MS等

4、共同提出,通过WSDL,可描述Web服务的三个基本属性:·服务做些什么服务所提供的操作(方法)·如何访问服务和服务交互的数据格式以及必要协议·服务位于何处协议相关的地址,如URLWSDL文档以端口集合的形式来描述Web服务,WSDL 服务描述包含对一组操作和消息的一个抽象定义,绑定到这些操作和消息的一个具体协议,和这个绑定的一个网络端点规范。WSDL在Web 服务概念性协议栈中的位置。WSDL描述语言一般包含三部分l         What部分:包括了type、message和por

5、tType元素Type:定义了Web Service使用的数据结构(使用XML Schema定义)Message:一个Message是SOAP的基本通信元素。每个Message可以有一个或多个Part,每个Part代表一个参数。PortType:消息汇总为不同的操作并归入到一个被称为portType的实体中。一个portType代表一个接口(Web Service支持的操作集合),每个Web Service可以有多个接口,它们都使用portType表示。每个操作又包含了input和 output部分。2     How部分:包含binding元素bind

6、ing元素将portType绑定到特定的通信协议上(如HTTP上的SOAP协议)3       Where部分:由service元素组成它将portType,binding以及Web Service实际的位置(URI)放在一起描述五、什么是WSDD?WSDD就是WEB服务分布描述(Web Service Deployment Descriptor), 它定义了WEB服务的接口,如服务名、提供的方法、方法的参数等信息。六、什么是UDDI?UDDI就是统一描述、发现和集成(Universal Description, Discovery,

7、 and Integration)。UDDI用于集中存放和查找WSDL描述文件,起着目录服务器的作用。Web服务中的角色、操作和构件。服务提供者。从企业的角度看,这是服务的所有者。从体系结构的角度看,这是托管访问服务的平台。服务请求者。从企业的角度看,这是要求满足特定功能的企业。从体系结构的角度看,这是寻找并调用服务,或启动与服务的交互的应用程序。服务请求者角色可以由浏览器来担当,由人或无用户界面的程序(例如,另外一个 Web 服务)来控制它。服务注册中心。这是可搜索的服务描述注册中心,服务提供者在此发布他们的服务描述。在静态绑定开发或动态绑定执行期间,服务请求者查找服务并获得服务的绑定信息(

8、在服务描述中)。对于静态绑定的服务请求者,服务注册中心是体系结构中的可选角色,因为服务提供者可以把描述直接发送给服务请求者。同样,服务请求者可以从服务注册中心以外的其它来源得到服务描述,例如本地文件、FTP 站点、Web 站点、广告和服务发现(Advertisement and Discovery of Services,ADS)或发现 Web 服务(Discovery of Web Services,DISCO)。七、客户端和服务器端客户端根据wsdl文件生成的一组相关的客户端类。然后,通过wsdl地址可以访问其他系统或应用所提供的功能。通常Web Service可以有三种类型的客户l

9、60;        商业伙伴(Business Partner)-包括分发商,零售商以及大型消费者)此类客户通过SOAP、WSDL、ebXML、UDDI等XML技术与Web Service连接l         瘦客户-包括Web浏览器、PDA以及无线设备该类客户通常经由轻量协议(如HTTP)与Web Service连接l         肥客户-包括Applet、

10、各类应用以及现存系统通常使用重量级协议(如IIOP)连接Web Service服务器端也就是对外提供的一个接口(本质上就是:方法),让其他不同的系统或应用可以来进行访问,本系统的功能。它包括的内容:1一个对外接口2该接口的实现类3一个部署描述文件,描述这个服务(接口)。部署文件中的服务的信息,是可以通过axis的命令来生成的。 这些文件都是将包含在一个完整的web应用中的,当启动web容器的时候,就可以其他系统进行访问了Webservice开发全程技术指导(二)一、文件格式介绍1JWS (Java Web Service) Files - Instant Deployment 它是格式正确的j

11、ava文件,文件的后缀是.jws。如果发布,可以直接把它放到发布的工程根目录下。它不能指定包名。如果引用其他类,只能其他类也不能指定包名。二、Axis工具简单操作命令和基本概念1显示帮助信息:java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java生成客户端代码实例:前提是必须的在dos切换到axis的lib目录。然后执行这个命令。j java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java -a -H -d -s -t -S true -p com.qnuse.zj114.webser

12、vice2WSDL2Java工具用于从WSDL文件生成客户端存根(stub)代码,服务端框架(skeleton)代码以及WSDL中的数据类型文件(生成与之对应的Java代码)。3server-config.wsdd记录了axis已发布的Web服务的描述信息。二、Axis工具wsdl2java命令参数解释1.    -N, -NStoPkg <argument>=<value> mapping of namespace to package2.    -a, -all generate code for all

13、elements, even unreferenced ones3.    -p, -package <argument>         override all namespace to package mappings, use this package          name instead4.    -h, -help  

14、       print this message and exit5.    -v, -verbose         print informational messages6.   -t, -testCase      为web service发行junit测试用例类四、 server-config.wsdd文件解释它是AXIS的配置文件,所

15、有发布的服务都会在里面描述。如果还没有server-config.wsdd文件,可以先写一个发布描述文件,然后用axis来生成,以后需要发布新的服务,直接往里面添加即可。比如有一个HelloWorld.class类,里面有sayHello(String msg)方法,想把它发布webservices,先写发布文件deploy.wsdd文件,即SOAP服务发布描述文件deploy.wsdd" xmlns:java="">然后,进入dos窗口,执行下列命令:java -cp %AXISCLASSPATH% org.apache.axis.client.Admin

16、Client deploy.wsdd 即可生成server-config.wsdd文件。如果想发布新的服务,也可以直接往server-config.wsdd里面添加service描述。五、 查看发布的webservice1首先要查看工程的web.xml的配置情况,例如:zj114boss的web.xml中对axis的配置是:    <servlet>       <servlet-name>axis</servlet-name>   

17、60; <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>       <load-on-startup>5</load-on-startup>    </servlet>    <servlet-mapping>       <servlet-

18、name>axis</servlet-name>       <url-pattern>/webservice/*</url-pattern>    </servlet-mapping>2启动容器,或看测试环境。在IE上键入:你将看到全部发布的service。3看详细的wsdl内容。例如:查看生产环境六、序列化与反序列化序列化/反序列化器在英文中的对应翻译是Serializer/Deserializer,一个序列化器的功能是遵循一定的映射规则和编码风格

19、,将一种类型的JAVA对象通过某种特定的机制,转换成为XML描述的形式;反序列化器的功能是序列化器所做工作的逆操作,两者相辅相成,成对出现。Axis中的序列化/反序列化器采用设计范式中的工厂模式,每一个Serializer唯一对应一个SerializerFactory;每一个Deserializer唯一对应一个DeserializerFactory。Axis已经为开发者提供了丰富的序列化/反序列化器,对于java的基本数据类型,绝大部分常用的容器类(比如数组类型,Vector类型等)都提供了实现,特别是提供了对W3C的DOM对象(比如Document, Element等)和符合Bean规范的J

20、AVA对象提供了功能完善的序列化/反序列化器,但对于一些特殊类型的对象,需要通过Web服务进行传递,我们不得不开发自己的序列化/反序列化器。八、Axis相比Soap v2的优点Axis是第三代Apache SOAP的实现,从2000年起,SOAP v2开发小组开始讨论如何让Axis更加灵活、可配置,以及能够处理SOAP和来自W3C的各种XML标准。通过不断地讨论和代码编写,Axis目前相比SOAP V2取得了如下成果:速度提高。 Axis通过基于事件的SAX对XML文档进行处理,从而在速度和效率上比Apache SOAP有所提高。灵活性提高。稳定性提高。提供面向组件的部署。提供一个简洁的传输抽象框架。其核心引擎完全于传输方式独立。从而使基于何种协议传输的选择更加灵活。支持WSDL。包括WSDL和客户端代码生成等。九、性能axis使用1.3版,xfire使用1.0版。xfire使用spring的servicesbean方式发布web服务。web services客户端使用delphi 7开发,分别对通过axis发布的web services及通过xfire发布的w

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论