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是一个基于Java的开源工具,它简化了创建、部署和消费Web服务的过程。在深入探讨这个完整实例之前,我们首先需要了解Web服务的基本概念。Web服务是一种通过网络进行通信的应用程序接口(API)。它们...
运行Ant的`gen-webservice`目标,它将根据指定的WSDL生成客户端代码。然后,编译并运行这个客户端项目,即可调用服务器端的Web服务。 通过以上步骤,我们可以成功地利用Xfire框架搭建并运行一个完整的Web服务系统...
要消费由XFire发布的Web服务,我们可以使用XFire的客户端API或者生成的客户端Stubs。通过指定服务的WSDL(Web服务描述语言)URL,我们可以动态地创建一个代理类来调用远程服务。 8. **测试与调试**: 一旦服务...
总结来说,"Xfire+Ant开发Webservice客户端"这个主题涵盖了使用Ant自动化构建流程,以及Xfire作为工具来创建和使用Web服务客户端的关键技术。理解这些内容对于任何希望在Java环境中构建Web服务的开发者都是至关重要...
**Xfire Webservice 示例详解** Xfire是一款曾经流行的在线游戏通信软件,同时也提供了一套用于构建Web服务的框架。在本示例中,我们将探讨如何使用Xfire来创建和消费Web服务。 首先,Web服务是一种通过互联网进行...
在XFire中,通常会使用Maven或者Ant等构建工具来管理依赖和构建项目。源码部分可能涉及创建服务端的Java接口和服务实现,以及客户端的调用代码。 在压缩包子文件的文件名称列表中,有两个文件:...
除了上述两种方式,还可以使用 Ant 脚本来自动生成客户端代码。这通常涉及到运行 XFire 的 wsdl2java 或类似的工具,它将 WSDL 文件转换为 Java 类和接口。这样可以避免手动编写客户端代码,并确保与服务端接口的...
5. **服务客户端**:学习如何使用XFire生成并使用Web服务客户端,包括自动代码生成和手动编写客户端代码。这将涵盖如何调用服务、处理响应和异常。 6. **高级特性**:深入探讨XFire的高级特性,如WS-Security(Web...
3. **生成客户端代理**: 使用XFire的代码生成器(如XFire的wsimport工具)来解析.NET Web服务的WSDL,并生成相应的Java客户端代码。 4. **调用Web服务**: 生成的Java客户端代理类可以像使用普通Java对象一样调用Web...
- 对于消费者,XFire提供动态代理生成,可以使用JAX-WS的`Service.create()`方法生成客户端代理类,直接调用服务方法。 - 还可以通过XML配置文件定义客户端行为,如指定URL、端口等信息。 6. **示例项目中的关键...
- **静态接口**: 如果你有服务的Java接口和实现类,可以直接生成客户端代理类,然后调用服务方法。 对于XFire,调用方式可能稍微不同,但原理相同:获取服务代理,然后调用服务方法。XFire提供了`...
它可以使用 Axis 提供的工具生成客户端 stub 或直接编写代码来构造SOAP消息,然后发送请求到服务端。 6. **服务端处理**:服务端接收到SOAP请求后, Axis 解析请求,调用相应的方法,执行业务逻辑,然后返回SOAP...
Apache CXF是一个强大的开源Web服务框架,源自Celtix和XFire两个项目的合并,现在作为Apache软件基金会的顶级项目存在。它提供了全面的JAX-WS(Java API for XML Web Services)支持,允许开发者轻松地发布和使用Web...
5. **工具集**:CXF提供了各种工具,如WSDL(Web Services Description Language)到Java代码的生成器、服务测试客户端、WS-*政策编辑器等,极大地简化了开发过程。 6. **模块化设计**:Apache CXF的设计是高度模块...