xfire 拾记
1 基本的xfire webservice部署 ?? 一般我们都是以helloworld开始的,当然xfire也是这么开始。都会给个返回String 的方法,这是最简单的体验。 ?? 当然这时候我们会想如果将数据类型扩展到我们自己建立的,java中的集合,那就可以了,基本可以应付一切情况了。 ? ?? 在写webservice的服务端的时候,可以不用考虑到啥类型的问题,和我们平常的写程序的时候一样,如果不是jsr181的情况, ?? 我们一般是遵循接口的编写方式。jsr181呢则是用了一些声明式的方式,感觉还是接口方式,自己用起来比较舒服。 ? ?? 在编写客户端的时候,我们有时候考虑到类型的问题。一般用ant进行生成。如下: ???<?xml version="1.0"?> <project name="txfie" default="genfiles" basedir="."> <property name="lib" value="../jars" /> <path id="myclasspath"> <fileset dir="./${lib}"> <include name="*.jar" /> </fileset> <pathelement location="${genfiles}" /> </path> <!--通过XFire ant任务生成客户端代码的存放位置--> <property name="code_path" value="${basedir}" /> <!--需要生成客户端代码的wsdl文件,可以直接获得对方给的wsdl 进行客户端代码的生产 --> <!-- 1 对方告诉部署的服务地址 --> <!-- <property name="wsdl_path" value="http://localhost:8899/helloWS_Spring_Xfire/helloService.ws?wsdl" /> --> <!-- 2 获得wsdl 指定地址 --> <property name="wsdl_path" value="MemberService.wsdl" /> ? <!--生成客户端代码的包名--> <property name="code_package" value="cn.com.client" /> ? <!-- Remove classes directory for clean build --> <target name="clean" description="Prepare for clean build"> <delete dir="${code_path}" /> <mkdir dir="${code_path}" /> </target> ? <!--<target name="genfiles" depends="clean" description="Generate the files"> ?--> <target name="genfiles" description="Generate the files"> <taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="myclasspath" /> <!--outputDirectory属性定义创建的代码所在的文件夹 ?? ? ? ? ? ?wsdl是web服务的wsdl文件 ?? ? ? ? ? ?package代表创建的代码的package ?? ? ? ? ? ?不些binding方式默认为jaxb2 还有xmlbeans方式 ?? ? ? ?--> <wsgen outputDirectory="${code_path}" wsdl="${wsdl_path}" package="${code_package}" ?overwrite="true" /> </target> </project> ? <!-- 用来生成客户端文件 --> ? a ?第一个划线的地方,已经写明白了,俩种方式指定客户端代码的源。要么直接指向具体的url, ?? ? 一般写服务的人会丢给你wsdl,这时我们直接用这个文件进行生成就可以了 b ?第二个进行划线的地方,没有执行xmlbinding="" ,默认的都是Aegis方式的,这时候如果服务中有自定义的pojo等 ?? ?的情况,在客户端都可以生成对应的pojo。当然也可以进行指定,例如xmlbeans等。 ?? ?具体区别:(暂缺) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |