跟大家分享一下我对xfire的初步了解,我想可以帮助刚刚接触 开发借口的朋友们。
先说服务器端:我们正常写我们的接口、实现类,如何发布我们的接口:在src目录下新建META-INF包,在这个包下建立xfire包,在xfire包下新建一个services.xml,这个xml 可以从xfire 的事例包中找到。
这个xml 是配置我们即将发布的接口、实现类和webservices的名字,被外部访问到的那个名字。
内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<!-- 发布的webservices的名字-->
<name>calculator</name>
<!--接口 -->
<serviceClass>com.test.service.CalculatorService</serviceClass>
<!-- 实现类,这里我其实可以不发布接口,但是实现类必须要有-->
<implementationClass>com.test.service.impl.CalculatorServiceImpl</implementationClass>
</service>
</beans>
web.xml 中的配置如下,如果你才用到 是myeclipse自动生成的话,这个配置已经帮你做好了
<servlet>
<servlet-name>XFireServlet</servlet-name>
<display-name>XFire Servlet</display-name>
<servlet-class>
org.codehaus.xfire.transport.http.XFireConfigurableServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*
</url-pattern>
</servlet-mapping>
这里面需要配置我们xfire用到的servlet,我用到的xfire 的版本是1.26,这样启动你的项目,通过地址连访问你的services路径机会看到你的发布的webservices接口的名字,点击进去就会看到schema式的xml。
---------------------------
再来介绍一下客户端:
客户端我们可以用命令也可以用ant 工具来为我们生成客户端的代码。我采用的是ant,这个是从网上拔下来的一个build.xml文件,为了省事。
build.xml要建在工程目录下,也就是和src平级:
<?xml version="1.0" encoding="UTF-8"?>
<project name="WebService" basedir="." default="gen-webservice">
<!--引入的properties文件,里面配置了我的wsdl 的路径 -->
<property file="build.properties"></property>
<!-- xfire 的lib 路径 -->
<path id="project-classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</path>
<target name="gen-webservice">
<taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask"
classpathref="project-classpath" />
<!-- wsdl是我们要访问的服务端路径,package是我们的客户端代码生成的位置-->
<wsgen outputDirectory="${src.dir}"
wsdl="${wsdl.dir}" package="com.test.axis2" overwrite="true"/>
</target>
</project>
build.properties 文件同样也要建在 工程根目录下,和src同级,内容如下:
src.dir = ${basedir}/src
lib.dir = D:/xfire/xfire-1.2.6/lib
wsdl.dir=http\://localhost/myxfire/services/calculator?wsdl
###wsdl.dir=http\://localhost/axis/services/myService?wsdl
这样右键ranas build.xml 文件 ,用ant 编译就可以了,
在生成的代码中有一些 根本就没有用,我们用到的是这个目录
那些没有用的可以删掉,随你的意思。
来让我们 编写客户的测试例子吧,
calculatorClient client = new calculatorClient();
calculatorPortType portType = client.getcalculatorHttpPort();
System.out.println(portType.add(1, 3));
从这里我们看到我们用到的客户端生成的类 就两个,calculatorClient 、 calculatorPortType
第一个类 负责 与服务端的代码交互,传递接口信息,第二个类中封装了我们服务器端已经发布的接口的方法。
具体的代码事例 可以在附件中查看,可能我的表述 不够清楚,请见谅。
分享到:
相关推荐
xfire webservice 上传下载源码 一个完整的demo
spring集成xfire webservice实现远程调用 将项目发布后,点击http://localhost:8080/SpringWebServiceTest/services/HelloWS?wsdl即可 其中也有客户端的调用,自己试试吧。
xfire的一个完整实例,不过我建议大家,学习完理论知识后,根据自己学得知识,手动练习一下,遇到异常就百度,一下,这样比较好!
XFire WebService 精简包 搭建XFire WebService必备包
grails+Xfire webservice
经本人仔细研究最少导入8个包,就可以做一个简单的webservice的应用,有不同意见着,欢迎讨论:站内留言
XFire Webservice 服务器端
xfire webservice wsdl 文件中字段名称变化
Xfire Webservice的例子,简单易懂~ 发布服务和调用都很简单~ 自己整理了下~ 没事的拿去看下就知道啦~
xfire webservice 集成spring客户端封装成到一个类打包到客户端就像调静态方法一样
java xfire webService服务器端,开发简单有文档说明。
spring+xfire( 编写webservice完整配置+案例)
xFire WebService 实例开发
包括Flex工程和XFire WebService工程,将WebService工程部署到Tomcat下,Flex工程即可访问到WebService.
XFire Webservice 客户端
Xfire webservice 加密
xfire实现webservice实例,XFire WebService开发快速起步
一个基于xfire开发的Webservice小例子,初学者可以看看!
java xfire webservice