使用AXIS作为开发环境来体会Web服务的开发过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用AXIS作为开发环境来体会Web服务的开发过程
本文介绍使用AXIS作为开发环境来体会Web服务的开发过程。
一.介绍
本文并不是想介绍Web服务的原理、系统架构等,我们假设您已经了解了关于Web服务的一些基本的概念、原理等知识。本文主要是针对那些已经了解Web服务概念,但是还没有亲身体会Web服务所带来令人欢欣鼓舞的特征的开发人员。在此我们认为你已经具备了Java、XML等基础知识,如果你还有其他开发环境的经验例如VB、VC那是再好不过的了。
1.Web服务
虽然我们并不想详细讲述Web服务的体系结构,但是大概的介绍一下还是有必要的。Web服务是一种新型的Web应用程序。不同于其他Web应用程序,它是自适应、自我描述、模块化的应用程序,并可以跨越Web进行发布、定位以及调用。简单的Web服务可以提供例如天气预报或者航班信息的服务。一旦部署了Web
服务,其他的应用程序就可以发现和调用所部署的服务。
2.AXIS项目
Axis框架来自 Apache 开放源代码组织,它是基于JAVA语言的最新的 SOAP 规范(SOAP 1.2)和 SOAP with Attachments 规范(来自 Apache Group )的开放源代码实现。有很多流行的开发工具都使用AXIS作为其实现支持Web服务的功能,例如JBuilder以及著名的Eclipse J2EE插件Lomboz。AXIS的最新版本是1.1,可以从/axis/index.html下载。下图是AXIS核心引擎的体系结构图:
图1
整个AXIS项目包括以下几个部分:
1.消息流子系统
消息流子系统提供了灵活的消息传递框架,这个消息传递框架包括处理程序、链、序列化程序和反序列化程序。处理程序是一个处理请求、响应和故障流的对象。处理程序可被组合在一起成为链,而且可以使用一个灵活的部署描述符来配置这些处理程序的顺序。
2.传输框架子系统
提供了一个传输框架,这个传输框架可以帮助您创建自己的可插式传输发送器和传输侦听器。
3.数据编码子系统
AXIS完全按照 XML Schema 规范提供各种数据类型的自动序列化,并且
提供功能扩展接口来使用您自己定制的序列化器和反序列化器。
4.其他
AXIS完全支持 WSDL 以及日志记录、出错以及故障处理机制。它同时提
供一些工具用来讲WSDL文档转换成客户端的调用框架以及根据类来产生
WSDL定义文档。
AXIS目前版本支持的标准是:W3C SOAP 1.1 和 1.2;WSDL 1.1;SAAJ 1.1(SUN 公司:SOAP with Attachments API for Java);JAX-RPC(SUN公司:Java API for XML-Based RPC)1.0。
除了前面介绍的AXIS外,本文中还将会用到TOMCAT,这里不再另行介绍。另外为了演示Web服务真正与开发环境无关以及AXIS产生的是标准的、符合规范的Web服务,我们还将用到微软公司的SOAP TOOLKIT以及微软的开发环境VB和VC 来做为Web服务的客户端。
二. 环境搭建
由于AXIS本身是基于JAVA语言开发的项目,并且是以Web应用形式发布的,因此它运行时需要一个应用服务器作为支撑。为了方便我们这里选用的是Tomcat。由于AXIS本身需要用到处理XML信息的包,所以我们建议使用JDK1.4并安装Tomcat 4.1.24。下面是环境搭建步骤,读取根据自身情况进行安装。
1.安装JDK1.4.1
2.安装Tomcat 4.1.24到C:\Tomcat并验证安装是否成功
3.下载AXIS项目打包文件axis-1_1.zip解压缩后将目录中的webapps目录
下的axis子目录拷贝到C:\Tomcat\webapps下。
4.验证AXIS的安装:重新启动Tomcat服务器后打开浏览器输入网址
http://localhost:8080/axis 后应该出现如下图所示页面,点击链接
"Validate"来验证Axis所需的几个JAVA包是否齐全。
图2
点击超链接Validate后,AXIS会自动检查所需的每一个JAVA组件,这协组件分为:必需组件以及可选组件,必须保证所有必需组件都存在,如下图所示即为验证成功。
图3
三. Web Service服务端开发
经过了前两步之后我们就可以开始Web服务之旅了!大多数人在学习一种编程语言的第一步都是从Hello world程序开始的,我们也不例外。我们将提供这样一个Web服务,通过给它传入姓名,服务返回:你好[姓名],欢迎来到Web服务的世界。这就是我们的需求。我们将马上根据AXIS的要求完成我们的需求,你就会发现原来Web服务可以这么简单!
编写JAVA类Hello.java,内容如下:
仅此而已,无需编译,将该文件改名为Hello.jws并拷贝到AXIS应用目录
C:\Tomcat\webapps\axis下。
下面我们就可以测试该Web服务了,打开浏览器并输入刚刚创建的文件名对应的URL地址http://localhost:8080/axis/Hello.jws浏览器显示如下结果:
点击页面上的链接查看该Web服务对应的WSDL信息如下所示(我们将在下一小节简单介绍WSDL)
到此我们已经完成了hello的Web服务了,那我们怎么告诉用户如何来使用该服务呢?我们只需要告诉用户我们的Web服务的URL地址:
http://localhost:8080/axis/Hello.jws?wsdl就可以了!下一节我们将介绍如何通过这个地址来访问对应的Web服务。
四. Web Service客户端开发
在这一节中我们将使用三种不同的语言来访问刚刚创建的Web服务,分别是JAVA、VB、VC。为了使用VB和VC访问Web服务,我们需要安装微软公司的Soap Toolkit 开发工具包,这个工具包可以从微软公司的主页
/download/xml/soap/2.0/W98NT42KMe/EN-US/ SoapToolkit20.exe
下载,下载该软件包并使用默认方式安装即可。
在开始客户端开发之前有两个概念我们必须先粗略的介绍一下。
SOAP:简单对象访问协议。这是一种在松散的、分布的环境中使用XML对等地交换结构化的和类型化的信息提供了一个简单且轻量级的机制,它是一个基于XML 的协议。它包括四个部分:SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAP 编码规则(encoding rules),用于表示应用程序需要使用的数据类型的实例; SOAP RPC表示(RPC representation),表示远程过程调用和应答的协定;SOAP
绑定(binding),使用底层协议交换信息。
虽然这四个部分都作为SOAP的一部分,作为一个整体定义的,但他们在功能上是相交的、彼此独立的。特别的,信封和编码规则是被定义在不同的XML命名空间(namespace)中,这样使得定义更加简单。