快速上手AXIS2.docx
- 文档编号:12490632
- 上传时间:2023-04-19
- 格式:DOCX
- 页数:12
- 大小:79.76KB
快速上手AXIS2.docx
《快速上手AXIS2.docx》由会员分享,可在线阅读,更多相关《快速上手AXIS2.docx(12页珍藏版)》请在冰豆网上搜索。
快速上手AXIS2
Axis2简介
ApacheAxis2是Axis的后续版本,是新一代的SOAP引擎。
Axis2的主要特点有:
1)采用名为AXIOM(AXIsObjectModel)的新核心XML处理模型,利用新的XML解析器提供的灵活性按需构造对象模型。
2)支持不同的消息交换模式。
目前Axis2支持三种模式:
In-Only、Robust-In和In-Out。
In-Only消息交换模式只有SOAP请求,而不需要应答;Robust-In消息交换模式发送SOAP请求,只有在出错的情况下才返回应答;In-Out消息交换模式总是存在SOAP请求和应答。
3)提供阻塞和非阻塞客户端API。
4)支持内置的Web服务寻址(WS-Addressing)。
5)灵活的数据绑定,可以选择直接使用AXIOM,使用与原来的Axis相似的简单数据绑定方法,或使用XMLBeans、JiBX或JAXB2.0等专用数据绑定框架。
6)新的部署模型,支持热部署。
7)支持HTTP,SMTP,JMS,TCP传输协议。
8)支持REST(RepresentationalStateTransfer)。
有关Axis2更加详细的介绍,可以访问Axis2网站http:
//ws.apache.org/axis2/
创建服务器端和客户端有5种方式
这里只介绍ADB的方式
首先去apache官方网站下载
http:
//ws.apache.org/axis2/download/1_4/download.cgi
WAR(WebArchive)Distribution包version1.4
解压后是个war包把它COPY到%Tomcat_HOME%\webapps下
启动TOMCAT通过这个地址访问http:
//localhost:
8080/axis2
会看见这个界面表示发布成功。
点Administration可以进入登陆界面用户名admin密码axis2这里你可以上传你要发布的services也可以直接把你要上传的文件打个.aar的包放到Tomcat_home\webapps\axis2\WEB-INF\services下也可以下面说一下怎么创建自己的webservices首先在ECLIPSE建立一个javaproject
建立一个包叫sinosoft在建立一个文件夹名字叫META-INF在这个文件夹下建立一个Services.xml结构如图
Services.xml文件内容如下
xmlversion="1.0"encoding="UTF-8"?
>
StockQuoteSampleService
mep="http: //www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/> mep="http: //www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> 服务器端代码如下 *@(#)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--> --===========================================--> org.apache.axis2.transport.http.AxisAdminServlet --===========================================--> 4.发布%MY_APPS%应用程序,发布WebService到%MY_APPS%\WEB-INF\services\下,一般为.aar文件。 5.可以从客户端访问: http: //localhost: 8080/My_APPS/services/SomeService访问该WebService.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 快速 上手 AXIS2