axis1.3是soap1.2协议的一个实现框架。在工作中我们可以方便的通过axis进行webservice的开发。
随着SOA的流行,webservice开发也变得相当的热门。许多企业都将自己的网站迁移到soa的架构。.今天我们来一起体验一下通过axis来创建、发布和调用webservice的过程.
安装axis.
我们可以从axis的官方网站上下载(http://ws.apache.org/axis/).解压缩axis-bin-1_3.zip。在lib中包含axis必须使用的jar包.docs中包含axis的文档,通常使用用户指南就可以解决大部分问题。samples中包含很多webservice的例子,webapps文件夹中包含了一个axis web application你可以直接把他部署到tomcat中,然后在这个axis应用上发布你的webservice,发布成功后就可以调用了。build文件夹用来存放用ant编译的axis安装包的classes文件。
copy axis-bin-1_3安装包下webapps文件夹中的axis目录到tomcat的webapps下发布你的axis应用。重新启动tomcat.访问http://localhost:8080/axis 。这时就会出现axis的欢迎画面.进入Validation链接以检查axis所使用的jar包是否全都存在。如果不存在我们可以根据链接下载axis缺少的jar文件,下载之后copy到tomcat\webapps\myaxis\WEB-INF\lib下即可。一般情况下还会有一些warning消息,里面列出的的选项不是必须存在的jar包。
一种简单webservice的发布方式-jws
我们通过JWS (Java Web Service)文件的方式来发布一个webservice。首先在安装包的axis-bin-1_3\axis-1_\samples\userguide\example2目录下找到Calculator .java文件,将其改名为Calculator .jws然后copy到tomcat的webapps/axis/下。发布这个webservice。这个webservice提供了两个功能即加减功能。下面我们来进行调用。首先进入客户端源代码所在位置,也可以将源代码所在目录添加到classpath中(C:\Documents andSettings\y41yang\Desktop\software\axis-bin-1_3\axis-1_3;):然后输入java samples.userguide.example2.CalcClient -p8080 add 2 5 这时如果结果为Got result : 7 则说明axis安装成功!如果失败了请检查classpath设置,是否将所有用到的jar文件加入classpath中。到这里axis就已经安装成功了.
这种发布方式非常的敏捷!但有它的局限性—你必须知道webservice的源代码。有时候这个的确很让人郁闷!比如:webservice被打成了一个jar包,你并没有源代码。或者这个webservice根本就不是你的公司开发的。这时你发布这个webservice就会变得很困难。axis针对这种情况提供了wsdd文件的方式来发布和撤销webservice。
第二种方法:AdminClient -一个axis发布工具,会自动地将你的webservice发布到WEB-INF下的server-config.wsdd文件中。可以利用AdminClient 创建服务调用服务。
发布服务:
java org.apache.axis.client.AdminClient -lhttp://localhost:80/axis/services/AdminService deploy.wsdd
AdminClient 所做的工作:AdminClient 首先会在axis所在应用下的WEB-INF文件夹下创建一个webservice配置文件server-config.wsdd,并且根据wsdd文件的配置将我们的webservice加入到这个配置文件中。如果server-config.wsdd已经存在则不会创建,会修改这个文件将新的service 配置到server-config.wsdd文件中。
-l:创建服务的URL
如果显示:Processing file deploy.wsdd
Done processing
则表明发布成功
调用服务:
java samples.userguide.example3.Client -lhttp://localhost:8080/axis/services/MyService "test me!"
说明:samples.userguide.example3.Client:用来测试的客户端
-lhttp://localhost:8080/axis/services/MyService :服务端的路径
"test me!" :参数
http://localhost:8080/axis/services/MyService?method=serviceMethod&&arg=aa
格式说明:http://服务的URL?method=调用的方法&&arg=参数值
卸载服务:
java org.apache.axis.client.AdminClient undeploy.wsdd
因为wtp的web service 集成了axis, 所以需要了解一下aixs的基本知识,但是我不推荐用手动的方法生成布署(手动的方法还需要把用到的所有的jar包都加到classpath中),在WTP插件中提供了可视化的操作,非常简单。