1、下载Axis2框架
进入apache.org网站,找到Axis,进入后右侧Downloads。
Binary distibution 是工具包
Source distribution 是源码包
WAR distribution 是war包
中间两个plugin 是插件
最后一个是IDEA的包
注:下载前三个(工具包、源码包、war包)即可
2、部署Axis2的war包
(1)将WAR distribution中的axis2.war包解压并复制到Tomcat的webapps文件夹中。
(2)双击Tomcat/bin目录下的startup.bat启动Tomcat,自动解压webapps下的war包。
(3)在浏览器地址栏中输入war包地址:
会在Tomcat下生成一个axis2的文件,通过Tomcat再访问:
点击Services,发现发布了一个Version版本,并没有发布服务,这是我们后面要操作的。
接下来实现由Eclipse发布服务到Tomcat。
3、在Eclipse中安装Axis插件
(1)下载axis2的两个插件,解压后将里面的 jar包复制到eclipse安装地址的plugins插件文件夹中。
(2)重启Eclipse,ctrl + N在创建里输入axis,就有:
检测是否存在上图选项。
4、创建服务端java项目
(1)创建接口与方法
(2)创建接口实现类,重写方法
(3)保存,在bin目标下生成.class文件。
5、发布服务
(1)创建Axis
(2)输入Class文件路径(即工作区间里要发布的项目的路径)
勾选 SKIP WSDL
选择自动生成XML文件,下一步,再下一步。
(3)填写服务的名字,实现类的地址,点击:Load,勾选 只要声明的方法
填写输出的地址及输出的文件名
最后在桌面生成一个.aar的文件,这是Axis2的包。
6、将.aar包复制到Tomcat下的axis2/WEB-INF/services
7、重启Tomcat,输入地址测试,发现在Version下面有暴露的方法
点击:personService就会产生一个xml文件
现在只在一启动tomcat就会发布这个服务
。
8、编写客户端来获取发布的服务
(1)创建java客户端,接下来创建axis,选择第一个
(2)选择通过java代码生成WSDL文件
(3)填写WSDL文件路径
下一步,选择输出的路径(这里放本客户端源码地址,到项目名地址即可,它会自动放到src文件夹中)
(4)ok后查看客户端项目中会多出一个包
报错的原因是因为这是在java项目,缺少axis的依赖包,动手导下即可。导入axis2-1.7.3-bin/bin下面所有的jar包。
创建一个包,建个测试类测试下
try {
PersonServiceStub personServiceStub=new PersonServiceStub();
Eat eat=new Eat();
eat.setWho1("xxx");
eat.setWho2("yy");
EatResponse response=personServiceStub.eat(eat); //这里将eat看成一个对象了
String str=response.get_return();
System.out.println(str);
} catch (AxisFault e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}