mep="http:
//www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
sinosoft.AdbService
服务器端代码如下
*@(#)Person.java2008-11-27;
*
*@Company
*/
packagesinosoft;
/**
*@description
*@version<1.0>
*@Author
*@Date2008-11-27
*/
publicclassPerson{
privateStringid;
privateStringname;
privateStringage;
privateStringsex;
publicStringgetAge(){
returnage;
}
publicvoidsetAge(Stringage){
this.age=age;
}
publicStringgetId(){
returnid;
}
publicvoidsetId(Stringid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetSex(){
returnsex;
}
publicvoidsetSex(Stringsex){
this.sex=sex;
}
publicStringgetALL(){
return"id="+id+"age="+age+"sex="+sex+"name="+name;
}
}
/*
*@(#)AdbService.java2008-11-26;
*
*@Company
*/
packagesinosoft;
/**
*@description
*@version<1.0>
*@Author
*@Date2008-11-26
*/
publicclassAdbService{
publicPersonsetPerson(Stringid)
{
Personp=newPerson();
p.setId(id);
p.setAge("20");
p.setName("zhangxu");
p.setSex("0");
returnp;
}
publicPersongetPerson(Personp)
{
Person_p=p;
p.setId("1");
p.setAge("20");
p.setName("zhangxu");
p.setSex("0");
returnp;
}
}
这样服务器端的代码已经完成接下来打个aar的包就可以了.
进入项目目录下执行打包命令jar–cvfAdbService.aar*;
把AdbService.aar拷贝到Tomcat_home\webapps\axis2\WEB-INF\services
启动tomcat_home通过http:
//localhost:
8080/axis2/services/listServices访问可以看到你的
Services
Services已经发布成功现在就可以写客户端调用了
客户端步骤如下:
去http:
//ws.apache.org/axis2/download/1_4/download.cgi下载
StandardBinaryDistribution的ZIP包axis2-1.4-bin.zip
解压后axis2-1.4文件夹
写个bat文件生成客户端代码框架
setAXIS2_HOME=解压后axis2-1.4的目录
%AXIS2_HOME%\bin\WSDL2Java
-urihttp:
//localhost:
8080/axis2/services/AdbService?
wsdl-p包名-dadb-s-o输出的路径>log.txt
Pause\
执行此BAT文件把生成的代码拷贝到你的客户端
客户端代码如下
*@(#)Test.java2008-11-27;
*
*@Company
*/
packagesinosoft;
importjava.rmi.RemoteException;
importorg.apache.axis2.AxisFault;
/**
*@description
*@version<1.0>
*@Author
*@Date2008-11-27
*/
publicclassTestClient{
publicstaticvoidmain(Stringargs[]){
try{
AdbServiceStubstub=newAdbServiceStub(
"http:
//localhost:
8080/sinocms/services/AdbService");
AdbServiceStub.Persongp=getPerson(stub);
AdbServiceStub.Personsp=setPerson(stub);
System.out.println("gp="+gp.getALL());
System.out.println("sp="+sp.getALL());
}catch(AxisFaulte){
e.printStackTrace();
}
}
/*fireandforget*/
publicstaticAdbServiceStub.PersongetPerson(AdbServiceStubstub){
//声明一个PERSON对象
AdbServiceStub.Personpeson=newAdbServiceStub.Person();
//一个SERVICE中GETPERSON的句柄
AdbServiceStub.GetPersongp=newAdbServiceStub.GetPerson();
gp.setP(peson);
AdbServiceStub.GetPersonResponseres=null;
try{
res=stub.getPerson(gp);
}catch(RemoteExceptione){
e.printStackTrace();
}
returnres.get_return();
}
/*fireandforget*/
publicstaticAdbServiceStub.PersonsetPerson(AdbServiceStubstub){
//声明一个PERSON对象
//一个SERVICE中GETPERSON的句柄
AdbServiceStub.SetPersonsp=newAdbServiceStub.SetPerson();
sp.setId("01");
AdbServiceStub.SetPersonResponseres=null;
try{
res=stub.setPerson(sp);
}catch(RemoteExceptione){
e.printStackTrace();
}
returnres.get_return();
}
}
Axis2整合到自己的Web应用程序中的过程。
1.将axis2.war发布到%TOMCAT_HOME%\webapps中,发布后的目录为%TOMCAT_HOME%\webapps\axis2
,该目录定义为%AXIS2_HOME%.
2.拷贝%AXIS2_HOME%\WEB-INF目录下所有内容到%MY_APPS%\WEB-INF目录下。
3.修改%MY_APPS%\WEB-INF目录下的web.xml文件,其中需要保留的axis2的配置内容如下:
--Axis2ServiceServletandservletmappings-->
--===========================================-->
AxisServlet
org.apache.axis2.transport.http.AxisServlet
10
AxisAdminServlet
org.apache.axis2.transport.http.AxisAdminServlet
AxisServlet
/servlet/AxisServlet
AxisServlet
*.jws
AxisServlet
/services/*
AxisAdminServlet
/axis2-admin/*
--===========================================-->
4.发布%MY_APPS%应用程序,发布WebService到%MY_APPS%\WEB-INF\services\下,一般为.aar文件。
5.可以从客户端访问:
http:
//localhost:
8080/My_APPS/services/SomeService访问该WebService.