Spring与XFire:构建高性能Web Service应用的实践指南

需积分: 0 1 下载量 66 浏览量 更新于2024-09-17 收藏 233KB DOC 举报
本文主要探讨的是Spring框架与XFire框架结合在Web Service开发中的应用。XFire作为新一代的WebService框架,与Axis2齐名,其设计理念在于提供简单易用的API,以降低Web Service应用的开发复杂度。它基于高性能的STAX引擎,具备多项关键特性: 1. **支持核心规范**:XFire全面支持SOAP、WSDL、WS-IBasicProfile、WS-Addressing和WS-Security等重要WebService标准,确保了服务的互操作性和安全性。 2. **高性能SOAP栈**:XFire的SOAP处理机制经过优化,能够提供高效的数据交换。 3. **可扩展绑定**:支持多种数据绑定方式,包括POJO、XMLBeans、JAXB 1.1和JAXB 2.0等,以及Castor,增加了灵活性。 4. **JSR181集成**:通过JDK 5.0注解,XFire能将普通的Java对象(POJO)无缝转化为WebService,简化了开发过程。 5. **多协议支持**:除了HTTP,XFire还支持JMS、XMPP和In-JVM等传输协议,特别地,In-JVM模式允许在无需启动Web应用服务器的情况下测试服务。 6. **易于使用**:XFire的API设计简洁直观,降低了开发者的学习曲线。 7. **兼容其他容器**:XFire能够与Spring、Pico、Plexus和Loom等流行的IoC容器无缝集成,增强应用程序的模块化和管理能力。 8. **JBI支持**:作为JSR 208的实现,XFire支持Java Business Integration (JBI),进一步扩展了服务间的集成能力。 9. **自动生成代码**:XFire可以根据WSDL文件自动创建客户端和服务端的代码生成器,提高开发效率。 10. **JAX-WS支持**:XFire走在了技术前沿,对JAX-WS标准的支持表明其对未来趋势的紧跟。 在Spring环境中,XFire的优势体现在能够简化在Spring框架下构建和管理Web Service的过程,使得开发者可以充分利用Spring的依赖注入、AOP等功能,同时享受到XFire的高性能和易用性。通过整合这两个强大的工具,可以构建出更加稳定、灵活且高效的Web Service解决方案。
2012-03-06 上传
package com.xfire.core.client; import java.net.MalformedURLException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.codehaus.xfire.client.XFireProxyFactory; import org.codehaus.xfire.service.Service; import org.codehaus.xfire.service.binding.ObjectServiceFactory; import com.xfire.core.entity.UserInfo; import com.xfire.core.service.IUserInfoService; /** *@author jilongliang *@Date 2012-3-5 * */ public class UserInfoClient { public static void main(String[] args) { getServiceList(); setServiceList(); } static String url = "http://localhost:8081/xfire/services/UserInfo"; /** * */ public static void getServiceList() { Service service = new ObjectServiceFactory() .create(IUserInfoService.class); try { IUserInfoService iAddressService = (IUserInfoService) new XFireProxyFactory() .create(service, url); List list = (ArrayList) iAddressService .getAddressList(); System.out.println("一共多少条数据:" + list.size()); for (Iterator iter = list.iterator(); iter.hasNext();) { UserInfo a = iter.next(); System.out.println(a); } } catch (MalformedURLException e) { e.printStackTrace(); } } public static void setServiceList() { Service service = new ObjectServiceFactory() .create(IUserInfoService.class); try { IUserInfoService iAddressService = (IUserInfoService) new XFireProxyFactory() .create(service, url); List listAdd = new ArrayList(); UserInfo address = new UserInfo(); address.setIdentifier(1); address.setCountry("中國"); address.setProivice("廣東省"); address.setCity("陽江"); address.setAddress("廣東陽春"); address.setPostCode("1111111"); address.setExist(false); address.setArrary(new String[] { "22", "23", "24" }); listAdd.add(address); address.setIdentifier(2); address.setCountry("中國"); address.setProivice("廣東省"); address.setCity("陽江"); address.setAddress(