微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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等。

    具体区别:(暂缺)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐