简介:ApacheAxis2是Axis的后续版本,是新一代的SOAP引擎。WebService简单讲就是将某个类中的方法发布成Web服务供别人调用,开发WebService的方式有很多种,如Apacheaxis2、apachecxf、xfire、以及Java6,这里用axis2进行开发WebService。
过程图片在百度网盘里也有,可以参考 http://pan.baidu.com/share/link?shareid=2132902462&uk=1930189755
一、配置:
ApacheAxis2下载页面:http://axis.apache.org/axis2/java/core/download.cgi(当前最新版本1.6.2)
ApacheAxis2 BinaryDistribution(1.6.2):http://mirror.bjtu.edu.cn/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-bin.zip
WARDistribution:http://mirror.bjtu.edu.cn/apache//axis/axis2/java/core/1.6.2/axis2-1.6.2-war.zip
Eclipse插件:
ServiceArchive Wizard - Eclipse Plug-in(用来将服务代码打包成后缀名为.aar文件的插件):
http://www.apache.org/dyn/mirrors/mirrors.cgi/axis/axis2/java/core/1.6.2/axis2-eclipse-service-plugin-1.6.2.zip
CodeGenerator Wizard - EclipsePlug-in(用来将服务代码生成wsdl文件以及解析将wsdl文件生成客户端代码的插件):http://www.apache.org/dyn/mirrors/mirrors.cgi/axis/axis2/java/core/1.6.2/axis2-eclipse-codegen-plugin-1.6.2.zip
安装插件:这里用的是EclipseRelease 4.2.0
将插件解压后拷到D:\eclipse\plugins下即可,重启eclipse后,Ctrl+N如果出现如下图所示,则表示插件安装成功。
二、部署axis2war
解压下载的axis2-1.6.2-war.zip得到一个axis2.war文件,将这个文件丢到tomcat\webapps目录,启动tomcat访问http://localhost:8080/axis2
看到如下界面,部署成功。
三、编写服务代码(Axis2WB.java)
packagecom.xcy;
publicclass Axis2WB {
/**
*提供了一个sayHello的服务
* @return
*/
publicString sayHello(String name){
return"Hello "+name;
}
/**
*提供了一个做加法的服务
* @param a
* @param b
* @return
*/
publicint add(int a,int b){
returna + b;
}
}
四、将服务代码打包成arr文件
1、Eclipse菜单-New - File - Other -Axis2 Service Archiver
2、classfile location:为刚刚写的Axis2WB类所在工程的bin目录
3、选择skipwsdl
4、如果你的Axis2WB有引用jar包,则在这里选择。我写的没有,所以next
5、这里自动生成service.xml,所以勾选让它自动生成,next
6、输入服务名称(随意)、类全名、load、next,classname一定要注意,包名也要写上,然后load,出现method,next
7、设置aar文件名以及存放目录(我是放在桌面)--Finish:一会要用到axis2wb.aar,然后要拷到tomcat,axis,services下,
将axis2wb.aar文件丢到之前部署的axis2应用的WEB-INF\services\目录下面,重启tomcat
再打开网址http://localhost:8080/axis2/services/listServices即可发现刚才我们生成的webservice,如下图所示,webservice发布成功
五、生成客户端代码
1、Eclipse菜单-File-New-Other-Axis2Code Generator
2、GenerateJava source code from a WSDLfile:根据WSDL生成webservice客户端的java代码。(在这里,我们选择这个)
Generatea WSDL from a Java source file :根据一个java源文件生成wsdl文件(这个源文件是打算发布成Web服务的java源文件,例如本demo中的Axis2WB.java)。
3、WSDLFile Location:http://localhost:8080/axis2/services/Axis2WB?Wsdl
4、OutputCodegen Wizard Next,默认就好。
六、调用Web服务(Test.java)
packagetest;
importjava.rmi.RemoteException;
importcom.xcy.Add;
importcom.xcy.AddResponse;
importcom.xcy.Axis2WB;
importcom.xcy.Axis2WBStub;
importcom.xcy.SayHello;
importcom.xcy.SayHelloResponse;
publicclass Test {
publicstatic void main(String[] args) throws RemoteException {
//创建客户端对象
Axis2WBaxis2wb = new Axis2WBStub();
//new一个调用sayHello方法需要的参数SayHello,并且设置name
SayHellosayHello = new SayHello();
sayHello.setName("lyy");
//调用web服务
SayHelloResponsesayHelloResponse = axis2wb.sayHello(sayHello);
//拿到返回结果
System.out.println(sayHelloResponse.get_return());
Addadd = new Add();
add.setA(88);
add.setB(3);
AddResponseaddResponse = axis2wb.add(add);
System.out.println(addResponse.get_return());
}
}
二、