虽然现在xfire有点过时了,似乎现在axis和cxf才是王道。不过个人认为xfire还是提供了比较好的实现方式,尤其是在绑定方式上,并且xfire提供了很简单的服务发布模式,如果是简单的webservice应用,使用xfire足够了。
在之前一个项目中使用了webservice和c语言编写的通信程序交互,c语言使用的是gSOAP,Java当然用的是xfire了。在开发过程中对xfire的运行原理深入了解了一些,对xfire的使用有一些心得:
1、首先,xfire可以单独启动一个服务器作为webservice服务的容器,这个服务器就是大名鼎鼎的jetty,所以有这方面需求的时候需要导入jetty的包。注意的是如果使用jetty6.1.26,Servlet API的版本需要时2.4以上。
2、一般的教程都是使用的配置文件的方式,在此就不再多说了。我看了一下源代码,如果使用jetty,在xfire内部有一个XFireServlet,这个类内部使用的是ObjectServiceFactory在加载Service服务,也就是说可以直接把一个对象变成webservice服务。
3、在深入一些,发现在XfireServlet中注册服务使用的是ServiceRegistry在注册Service,这个ServiceRegistry是从XFire对象中获取的。而XFire对象在系统中是单例的。
4、可以使用注解的方式,这个可以使用AnnotationServiceFactory在加载Service。在此需要注意当参数为JavaBean时,需要为参数类添加@XmlType,在客户端调用是,参数类需要制定namespace,不然参数值无法解析。
5、Service对象可以调用setPropety方法指定一些head参数,比如用户名密码。另外可以调用setInvoker方法设置执行对象,可以自己实现Invorker对象,在执行时进行额外处理。
转载请注明出处~!谢谢。http://cisumer.iteye.com/blog/1002504
分享到:
相关推荐
WebService应用中 Xfire使用说明文档
<param-value>classpath:spring/app.xml,classpath:org/codehaus/xfire/spring/xfire.xml <!--配置xfire ws--> <servlet-name>XFireServlet <servlet-class>org.codehaus.xfire.spring....
xfire 使用外部类、返回collection及输入数组参数示例
在 MyEclipse 上使用 XFire 编写 Web Service.rar在 MyEclipse 上使用 XFire 编写 Web Service.rar在 MyEclipse 上使用 XFire 编写 Web Service
本例子使用XFire发布WebService+XFire调用WebService-示例
xfire客户端生成自动生成java代码调用
xfire 的学习笔记,包括如何生成webservice客户端代码,如何集成spring框架以及常见异常的处理
commons-httpclient-3.1.jar,xfire客户端使用需包2
java使用XFire调用webService接口
xfire-all-1.2.6 xfire所需的全部包
XFire--Webservice入门xfire
完整的一个demo,使用xfire发布的员工管理类Demo,操作方法包括,增删改查基本四个操作。初学时做的练习用的
XFire1.2.6完整版JAR包 XFire1.2.6完整版JAR包XFire1.2.6完整版JAR包XFire1.2.6完整版JAR包
Xfire API 对开发web services有帮助!编写程序时作为参考!
Xfire案例
XFire完整入门教程XFire完整入门教程XFire完整入门教程XFire完整入门教程
activation.jar commons-logging.jar jdom-1.0.jar spring.jar spring-mock.jar stax-api-1.0.1.jar stax-utils-snapshot-20040917.jar wsdl4j-1.5.2.jar wstx-asl-3.0.1.jar ...xfire-xmlbeans-1.2.2.jar
xfire 1.26 博文链接:https://qgl.iteye.com/blog/119726
对dwr和xfire很详尽的代码,有注释等,欢迎下载学习!
2 使用Stax解释XML,性能有了质的提高。XFire采用Woodstox 作Stax实现; 3 容易上手,可以方便快速地从pojo发布服务; 4 支持Spring、Pico、Plexus、Loom等容器; 5 灵活的Binding机制,包括默认的Aegis,...