利用Axis实现基于SOAP的Web Service
简介
这是一篇用Java不到2周的新手写的关于利用Axis实现基于SOAP的Web Service的纪实性文章,里面不敢介绍什么SOAP,Axis,Web Service之类的理论知识,因为我至今还不是很懂这些,其中涉及到的你可能感兴趣的问题是:
1.如何用JBuilder 9写Web Service的服务器端和客户端;
2.如何发布Web Service;
3.如何解决Web Service中自定义对象的传递问题.
我使用的各个主要开发抱/工具/平台的情况如下:
1. JDK 1.4.0.01
2. JBuilder 9.0
3. Axis 1.1(past name is Apache SOAP 3.0)
4. Xerces 2.5.0
5. Javamail 1.3.1
6. Jaf 1.0.2
7. Tomcat 4.1
关键字 Axis,Web Service,SOAP,JBuilder
*为什么是Axis而不是Apache SOAP?
我最近跳槽了,在以前的公司莫名的郁闷了很久,终于是迈出了这一步,新公司用Java,天,Java,对我来说用Java是近四年前的事情了,那时候还是JDK1.1.7A,我有些莫名的紧张,刚来接到的活是:”做一个Web Service提供给别人调用”….Web Service,我在Windows平台上倒是用过,无非是找一个Java世界中的SOAP实现(也就是一个 SOAP Toolkit),然后调用就完了…首先我找到的是Apache SOAP 2.2,我满心欢喜的准备开始了…还是等等吧,我劝自己冷静一点,看看文档再说…于是我泡上一杯茶到http://ws.apache.org/axis/index.html一顿乱看,这一看把我吓了一跳…有文字为证:
Apache SOAP Axis
----------------------------------------------------------------------
really old third generation
really slow much faster, but not as fast as many
no WSDL support WSDL support
proprietary API JAX-RPC API
RPC/encoded only RPC/encoded and Doc/literal
interoperability issues very interoperable
extensiblity issues very extensible
low level API for headers easy handler support for headers
上司给我的文档中提到了WSDL这玩意,而上面的表格说明Apache SOAP就不支持WSDL…很自然我的,我选择了Axis,我现在对Axis的认识就是:它是Apache SOAP的后续版本,本来是叫Apache SOAP 3.0的,但是人家为了噱一点就去了这个名字.
Axis和Apache SOAP都是SOAP协议的实现,但是基于上面提到的理由我选择了Axis.
*安装和配置Axis
这个请参看http://ws.apache.org/axis/index.html上面写的很详细,其实Axis的安装和配置很简单,从apache网站上Down下1.1的安装文件,解压缩,然后一份拷贝到服务器上,一份拷贝到客户端,然后就是配置了,最主要的就是环境变量的设置了:
A. Client(Windows 2000/NT/XP)
set AXIS_HOME = c:\axis
set AXIS_LIB = %AXIS_HOME%\lib
set AXISCLASSPATH = %AXIS_LIB%\axis.jar;
%AXIS_LIB%\commons-discovery.jar;
%AXIS_LIB%\commons-logging.jar;
%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;
%AXIS_LIB%\log4j-1.2.8.jar;
%AXIS_LIB%\xml-apis.jar;
%AXIS_LIB%\xercesImpl.jar
B. Server(Unix+Tomcat4.1.X)
set AXIS_HOME=/usr/axis
set AXIS_LIB=$AXIS_HOME/lib
set AXISCLASSPATH=$AXIS_LIB/axis.jar:$AXIS_LIB/commons-discovery.jar:
$AXIS_LIB/commons-logging.jar:
$AXIS_LIB/jaxrpc.jar:$AXIS_LIB/saaj.jar:
$AXIS_LIB/log4j-1.2.8.jar:$AXIS_LIB/xml-apis.jar:
$AXIS_LIB/xercesImpl.jar
export AXIS_HOME;
export AXIS_LIB;
export AXISCLASSPATH
环境变量很重要也是很容易搞错的地方,你可以设置好以后在控制台下输入set命令(我假设你此时在Win2000/XP下)检查一下自己的环境变量是否设置正确了…像什么找不到指定类之类的错误很可能就是因为环境变量没有设置正确,遇到这类问题别急着哭着喊着去csdn贴贴子,检查自己的环境变量设置先.
未完待续