Web Service 学习手册
Christian 2010-11-11
第 2 页 共 46 页
第 3 页 共 46 页
目 录
目录
文档说明........................................................................................................................................... 4
1 Web Service 简介 ......................................................................................................................... 4
1.1 什么是 Web Service? .............................................................................................. 4
1.2 Web Service 用到的技术 .......................................................................................... 4
1.3 主流 Web Service 框架 ............................................................................................. 5
1.3.1 Axis ................................................................................................................... 5
1.3.2 Xfire .................................................................................................................. 6
1.3.3 CXF ................................................................................................................... 6
1.3.4 主流 Web Service 的比较 ................................................................................. 7
2 开发篇....................................................................................................................................... 8
2.1 Xfire .......................................................................................................................... 8
2.1.1 下载 Xfire ......................................................................................................... 8
2.1.2 使用 Xfire 开发 Web Service 的基本步骤 ...................................................... 9
2.1.3 具体应用 ......................................................................................................... 13
2.1.4 Xfire 与 spring 集成 ....................................................................................... 42
第 4 页 共 46 页
文档说明
本文详细介绍了如何用 Xfire,CXF,Axis 开发 Web 服务.Webservice 的底层原理并不在本
文研究的范围内。所有示例都在 sample 目录里。这个学习手册的目的是只要仔细阅读本文
档以及示例代码,任何对 webservice 没有基础的程序员都可以用这三个框架编写 webservice
接口。但前提是需要动手做每一个示例。
1 Web Service 简介
1.1 什 么 是 Web Service?
从表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过 Web 进行
调用的 API。这就是说,你能够用编程的方法通过 Web 来调用这个应用程序。我们把调用这
个 Web service 的应用程序叫做客户。
另一种更精确的解释:Web services 是建立可互操作的分布式应用程序的新平台。Web
service 平台是一套标准,它定义了应用程序如何在 Web 上实现互操作性。你可以用任何你
喜欢的语言,在任何你喜欢的平台上写 Web service,只要我们可以通过 Web service 标准
对这些服务进行查询和访问。Web service 平台需要一套协议来实现分布式应用程序的创建。
任何平台都有它的数据表示方法和类型系统。要实现互操作性,Web service 平台必须提供
一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。在传统
的分布式系统中,基于界面(interface)的平台提供了一些方法来描述界面、方法和参数(译
注:如 COM 和 COBAR 中的 IDL 语言)。同样的,Web service 平台也必须提供一种标准来描
述 Web service,让客户可以得到足够的信息来调用这个 Web service。最后,我们还必须
有一种方法来对这个 Web service 进行远程调用。这种方法实际是一种远程过程调用协议
(RPC)。为了达到互操作性,这种 RPC 协议还必须与平台和编程语言无关。
1.2 Web Service 用 到 的 技 术
为了实现平台无关,实现独立的访问 Web 服务, 业界制定了一系列技术标准,下面是
一些重要的技术:
第 5 页 共 46 页
1. XML
可扩展的标记语言(XML)是 Web service 平台中表示数据的基本格式。它的内容与
表示的分离十分理想,除了易于建立和易于分析外,XML 主要的优点在于它既是平
台无关的,又是厂商无关的。无关性是比技术优越性更重要的:软件厂商是不会选
择一个由竞争对手所发明的技术的。
2. SOAP
Web service 建好以后,你或者其他人就会去调用它,简单对象访问协议(SOAP)提
供了标准的 RPC 方法来调用 Web service,SOAP 规范定义了 SOAP 消息的格式,以
及怎样通过 HTTP 协议来使用 SOAP,SOAP 也是基于 XML,XML 是 SOAP 的数据编码方
式。
3. WSDL
你会怎样向别人介绍你的 Web service 有什么功能,以及每个函数调用时的参数
呢?你可能会自己写一套文档,你甚至可能会口头上告诉需要使用你的 Web
service 的人。这些非正式的方法至少都有一个严重的问题:当程序员坐到电脑前,
想要使用你的 Web service 的时候,他们的工具(如 Visual Studio)无法给他们提
供任何帮助,因为这些工具根本就不了解你的 Web service。解决方法是:用机器
能阅读的方式提供一个正式的描述文档。Web service 描述语言(WSDL)就是这样一
个基于 XML 的语言,用于描述 Web service 及其函数、参数和返回值。因为是基于
XML 的,所以 WS 是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一
些最新的开发工具既能根据你的 Web service 生成 WSDL 文档,又能导入 WSDL 文档,
生成调用相应 Web service 的代码。
1.3 主流 Web Service 框架
1.3.1 Axis
Axis(Apache Extensible Interaction System)是一款开源的Web Service 运行引擎,它
是SOAP 协议的一个实现,其本身来源于Apache 的另一个项目Apache SOAP。Axis 分为1.x
系列和2 系列,两个系列体系结构和使用上有较大的区别,相对而言,Axis1.x 更加稳定,
文档也比较齐全.