1. 配置 ant 环境
能看到这里的相信这都不是问题,实在不明白的请查阅我 ant 相关文档。
本例 ant 版本:Apache Ant(TM) version 1.9.3。
2. 下载 xfire 工具包
http://xfire.codehaus.org/Download,一般来说下载最新版本就是。
本例 xfire 版本:xfire-1.2.6。
3. 建立 eclipse 项目工程
创建最普通的 Java Project 项目工程即可。
a) 创建 test 测试源码包
b) 创建 lib 三方依赖 jar 目录,并将所有依赖 jar 引入 classpath,
大多数依赖的三方 jar 在 xfire 工具包里面都有。
c) 创建 build.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <project name="XFire-WsGen" basedir="." default="jar"> <property name="src.dir" value="${basedir}/src" /> <property name="lib.dir" value="${basedir}/lib" /> <property name="output.dir" value="${basedir}/output" /> <property name="wsdl.dir" value="http://127.0.0.1/MoneyCenter/services/User?wsdl"/> <property name="package.dir" value="moneycentry.client.usermoney" /> <property name="jar.file" value="${output.dir}/moneycentry-usermoney.jar" /> <path id="mypath"> <fileset file="${lib.dir}/*.jar"> <include name="*.jar" /> </fileset> </path> <target name="clean"> <delete includeEmptyDirs="true"> <fileset dir="${src.dir}" includes="**/*" defaultexcludes="no"/> </delete> <delete dir="${output.dir}"/> </target> <target name="init" depends="clean"> <mkdir dir="${output.dir}" /> </target> <taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="mypath"></taskdef> <target name="wsgen" depends="init"> <taskdef name='WsGenTask' classname="org.codehaus.xfire.gen.WsGenTask" classpathref="mypath" /> <WsGenTask outputDirectory="${src.dir}" wsdl="${wsdl.dir}" package="${package.dir}" overwrite="true" /> </target> <target name="compile" depends="wsgen"> <copy todir="${output.dir}/classes/META-INF"> <fileset dir="${src.dir}/META-INF"/> </copy> <javac srcdir="${src.dir}" destdir="${output.dir}/classes" debug="true" failonerror="true" classpathref="mypath" /> </target> <target name="jar" depends="compile"> <jar destfile="${jar.file}" basedir="${output.dir}/classes"></jar> </target> </project>
经过整理后的 build.xml 可以做到多项目通用,只需稍作修改
i. wsdl.dir
不同的 webservice,肯定有不同的 wsdl 地址。
ii. package.dir
生成客户端默认 package 名称。
iii. jar.file
生成 jar 文件的 jar 包名称。
d) 项目目录截图
4. 利用 ant 生成客户端代码
右键 build.xml –> Run As –> Ant Build
当看到控制台显示 ant 构建成功的消息,src 下面也生成相关文件,则说明成功。
5. 测试客户端
在 test 源码包下面新建 com.xfire.lynch.MainTest 测试类,介于只是简单测试,就不
搭建 Junit 测试环境,而采用 main 函数测试,看到控制台正常打印出数据,说明调用成功。
6. 代码讲解
UserClient uc = new UserClient();
获取 User 客户端类。
UserPortType upt = uc.getUserHttpPort();
获取 User 服务器端的所有接口方法。
String test = upt.findUserById("123456","dab871c3-cad4-4d2f-846f-235c00a1bcc5");
远程调用 User 类里的 findUserById 方法。
7. 与 spring 集成
大多数应用都是要和 spring 集成,本例只需将每次运行 ant 后,output 目录下生成的
moneycentry-user.jar 和依赖的三方 jar 添加进你的 spring 环境中。在 spring 中定
义一个 bean,需要的时候注入就可以使用了。
<bean id="userClient" class="moneycentry.client.user.UserClient"></bean>
8. 后记感受
Maven:
最近和公司其他系统进行衔接,本来我是个 maven 党,还是个没经历过 ant 时代
的 maven 党。开始使用 eclipse 打包,对面系统的 wsdl 总是不断的变化,无奈之下
只好用 ant 来生成 jar,大大提升了效率。通过学习 ant 对 maven 中的一些理念也有
了新的理解,可见学习一个技术也可从同等技术对比中获益。
Webservice:
第一次使用 ws 技术,不过也不算太复杂。虽然很多大牛都说 ws 是过时的技术,
不过学习来说还是值得的。不知各位看官看到此处理解如何,介于本人文档写作水平有
限,还望多多谅解,也祝大家学习愉快。
相关推荐
XFire Webservice 客户端
webservice ixfir 客户端端开发 对象传递使webservice开发更加简单快捷
xfire+webService 客户端和服务器端的例子 xfire-distribution-1.2.6.zip 是xfire的包,网上可以下载的,本人已经下载完毕。 另附两个xfire的配制文档,供大家参考。 XFire-WebService.pdf Xfire WebService...
eclipse下用xfire生成webservice,可以jboss5.1运行,,, eclipse下用xfire生成webservice,可以jboss5.1运行,
xfire开发webservice与调用 用起来比axis简单,容易上手。没有axis那么复杂。性能也比axis好。附件里面包含教程文档及实例代码
xfire webservice 集成spring客户端封装成到一个类打包到客户端就像调静态方法一样
xfire webservice 上传下载源码 一个完整的demo
spring集成xfire webservice实现远程调用 将项目发布后,点击http://localhost:8080/SpringWebServiceTest/services/HelloWS?wsdl即可 其中也有客户端的调用,自己试试吧。
axis.jar是xfire开发webservice客户端的axis模式的资源包
xfire客户端生成自动生成java代码调用
里面包含了java通过xfire访问webservice用到的jar包,已经打包好了
NULL 博文链接:https://fenghaoo.iteye.com/blog/434000
xfire的一个完整实例,不过我建议大家,学习完理论知识后,根据自己学得知识,手动练习一下,遇到异常就百度,一下,这样比较好!
XFire与Spring集成WebService客户端的两种开发方式.pdfXFire与Spring集成WebService客户端的两种开发方式.pdfXFire与Spring集成WebService客户端的两种开发方式.pdfXFire与Spring集成WebService客户端的两种开发方式...
webservice客户端几种方式调用汇总,客户端代码生成及调用方式详细说明等
xfire根据WSDL生成客户端代码.rar
spring+xfire( 编写webservice完整配置+案例)