您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > XFire完整入门教程
XFire完整入门教程本Blog所有内容不得随意转载,版权属于作者所有。如需转载请与作者联系(fastzch@163.com)。未经许可的转载,本人保留一切法律权益。一直以来,发现有某些人完全不尊重我的劳动成果,随意转载,提醒一下那些人小心哪天惹上官司。网上关于XFire入门的教程不少,要么是讲得很简单,就像HelloWorld一样的程序,要么就是通过IDE集成的工具来开发的,这对于不同的人群有诸多不便,关于XFire的一些详细的信息就不再多讲,可以参考官方网站和相关的文档,这里讲一个完整的入门实例。实例中包括三个情况,我想基本上可以概括所有的需求,或者自己稍加扩展即可。先来看看我们的Interface。1packagetest;23importjava.util.List;45publicinterfaceIHelloService{6publicStringsayHello(Stringttt);78publicCoursechoose(Useru);910publicListtest(Listt);11}这其中包含了简单对象的传递,对象的传递,List的传递。具体的开发步骤如下:1、定义WebService的接口,代码见上面的接口定义。2、实现接口和业务逻辑,代码如下:1packagetest;23importjava.util.ArrayList;4importjava.util.List;56publicclassHelloServiceImplimplementsIHelloService{78publicStringsayHello(Stringttt){9returnHello,+ttt;10}1112publicCoursechoose(Useru){13System.out.println(u.getName());14Coursec=newCourse();15c.setName(Eee);16returnc;1718}1920publicListtest(Listt){21for(inti=0;it.size();i++){22System.out.println((String)t.get(i));23}24Listal=newArrayList();25Coursec=newCourse();26c.setName(EeeDDDDDD);27al.add(c);28returnal;2930}31}用到的User和Course两个类的代码如下:1packagetest;23publicclassUser{4privateStringname;56publicStringgetName(){7returnname;8}910publicvoidsetName(Stringname){11this.name=name;12}13}141packagetest;23publicclassCourse{4privateStringname;56publicStringgetName(){7returnname;8}910publicvoidsetName(Stringname){11this.name=name;12}1314}3、编写XFire要求的WebSevice定义描述文件,如下:1?xmlversion=1.0encoding=UTF-8?2beansxmlns=://test/HelloService/namespace7serviceClasstest.IHelloService/serviceClass8implementationClasstest.HelloServiceImpl/implementationClass9/service1011/beans此文件放在src/META-INF/xfire/services.xml,编译时会自动编译到classes的相应目录下面。4、因为我们用到了List等集合类型,所以需要定义Mapping关系,文件名为:src/test/IHelloService.aegis.xml,代码如下:1?xmlversion=1.0encoding=UTF-8?2mappings3mapping4methodname=test5parameterindex=0componentType=java.lang.String/6return-typecomponentType=test.Course/7/method8/mapping9/mappings请注意,此文件一定要放到与IHelloService.java相同的目录下面,否则会出错。5、在Web.xml中配置XFire需要用到的Servlet,代码如下:1?xmlversion=1.0encoding=UTF-8?2web-appversion=2.4xmlns=:xsi=:schemaLocation=://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd67servlet8servlet-nameXFireServlet/servlet-name9servlet-class10org.codehaus.xfire.transport.http.XFireConfigurableServlet11/servlet-class12/servlet1314servlet-mapping15servlet-nameXFireServlet/servlet-name16url-pattern/servlet/XFireServlet/*/url-pattern17/servlet-mapping1819servlet-mapping20servlet-nameXFireServlet/servlet-name21url-pattern/services/*/url-pattern22/servlet-mapping232425welcome-file-list26welcome-fileindex.jsp/welcome-file27/welcome-file-list28/web-app此时WebService的服务端就开发完成了。我们来看看客户端的代码吧,也很简单,如下:1packagetest;23importjava.net.MalformedURLException;4importjava.util.ArrayList;5importjava.util.List;67importorg.codehaus.xfire.XFireFactory;8importorg.codehaus.xfire.client.XFireProxyFactory;9importorg.codehaus.xfire.service.Service;10importorg.codehaus.xfire.service.binding.ObjectServiceFactory;1112publicclassClient{1314publicstaticvoidmain(String[]args){1516ServicesrvcModel=newObjectServiceFactory()17.create(IHelloService.class);18XFireProxyFactoryfactory=newXFireProxyFactory(XFireFactory19.newInstance().getXFire());2021StringhelloWorldURL={23IHelloServicesrvc=(IHelloService)factory.create(srvcModel,24helloWorldURL);25System.out.println(srvc.sayHello(Robin));2627Useru=newUser();28u.setName(RRRRR);29Coursec=srvc.choose(u);30System.out.println(c.getName());3132Listal=newArrayList();33al.add(1212);34al.add(2222);35Listt=srvc.test(al);36for(inti=0;it.size();i++){37Courseco=(Course)t.get(i);38System.out.println(co.getName());39}404142}catch(MalformedURLExceptione){43e.printStackTrace();44}4546}4748}49以上代码均无注释,因为都非常简单,呵呵。如有不清楚的地方,请留言!
本文标题:XFire完整入门教程
链接地址:https://www.777doc.com/doc-2857360 .html