WebService CFX 实现
? ? ? ?Apache CXF是Codehaus XFire 的第二代产品,目前在不同框架中性能最佳,应该是开发者不错的选择,这与它本身的架构设计不无关系。相比其他框架,CXF具有几个突出的特性:支持JAX-WS、Spring集成、Aegi数据绑定、支持RESTful services、支持WS-*、Apache协议、代码实现简洁。Apache Axis2是Apache Axis1的第二代产品,架构上也非常不错,关键特性:支持各种规范、可插拔模块化设计、支持热部署等。与CXF相比性能也非常优异。 在服务端框架确定的场景下,最好是采用该框架生成客户端代码,这样配合性能可达到更佳。在实际的项目中,开发者在选择具体那个框架时,仍还需综合评估框架的开发组织、产品路线图、文档化程度、应用广泛度、与优异框架的集成度、灵活和扩展性等因素。
对比一下性能: Axis1、Axis2、XFire、CXF、Spring、SOAP、StAX、WSDL Axis本质上就是一个SOAP引擎(Apache Axis is an implementation of the SOAP),提供创建服务器端、客户端和网关SOAP操作的基本框架。但Axis并不完全是一个SOAP引擎,它还包括:l??是一个独立的SOAP服务器。 l??是一个嵌入Servlet引擎(例如Tomcat)的服务器。 l??支持WSDL。 l??提供转化WSDL为Java类的工具。 l??提供例子程序。 l??提供TCP/IP数据包监视工具。 Apache Axis2相比Apache Axis1更加有效、更加模块化、更加面向xml,支持容易插件模块扩展新功能和特性,例如安全和可靠。Apache Axis2是基于Apache AXIOM,它是一个高性能、pull-based XML对象模型。Apache Axis2的关键特性:l??解析xml更快。采用自己的对象模型和StAX (Streaming API for XML)。 l??更低的内存占用。 l??支持热部署。新服务加入到系统,无需重启服务。 l??支持异步 webservice、 l??MEP支持,灵活支持在WSDL 2.0定义的Message Exchange Patterns (MEPs) l??更加灵活。引擎给开发人员提供了充足的自由度可扩展客户头信息处理、系统管理、 l??更加稳定性。 l??传输框架不依赖于具体协议。为集成和传输协议(SMTP,FTP,message-oriented middleware,etc)有一个简单和抽象,引擎核心是完全独立于具体的传输协议。 l??支持WSDL。支持WSDL1.1、WSDL2.0。 l??方便集成其他组件(Add-ons)。几个web services已经被集成,包括:WSS4J?for security (Apache Rampart),?Sandesha?for reliable messaging,Kandula?which is an encapsulation of WS-Coordination,WS-AtomicTransaction and WS-BusinessActivity. l??良好的扩展性。 XFire核心是一个轻量的基于STAX消息处理模型,用来与SOAP消息交互,它支持不同类型的绑定机制、容器和传输协议。支持webservice标准- SOAP,WSDL,WS-I Basic Profile,WS-Addressing,WS-Security,etc. l??高性能SOAP STACK l??可插拔绑定POJOs,XMLBeans,JAXB 1.1,JAXB 2.0,and Castor support l??通过Java1.5 和1.4(Commons attributes JSR 181 syntax)使用JSR 181 API配置服务 l??支持多中传输协议- HTTP,JMS,XMPP,In-JVM,51); font-family:Arial; font-size:14px; line-height:26px"> l??可嵌入的和直观的API l??支持Spring,Pico,Plexus,and Loom l??支持JBI l??客户端和服务端stub代码生成 l??支持JAX-WS early access Apache CXF是一个开源服务框架。CXF可用前端编程APIs开发服务,比如:JAX-WS and JAX-RS,主要特性包括:l??支持Web services标准。包括:SOAP、the WSI Basic Profile、WSDL、WS-Addressing、WS-Policy、WS-ReliableMessaging、WS-Security、WS-SecureConversation 和WS-SecurityPolicy. l??支持不同类型前端开发模型。CXF实现了JAX-WS APIs,支持JAX-RS开发。 l??容易使用。CXF设计的简洁和直观,具有简洁APIs迅速的构建基于代码的服务,Maven插件使得工具集成更加容易、JAX-WS API支持、Spring 2.x XML使得配置更加容易。 l??支持二进制和遗留协议。CXF被设计为可插拔的架构,在不同的传输协议结合下,不仅支持XML,也支持非XML类型绑定,例如:JSON和CORBA。 简单贴一个cfx实现的webservice思路以及重点 : 准备工作: A:准备CXF实现所需要的jar ,这个网上多的是,可以到官网: http://cxf.apache.org/download.html? 查看 B:Server 接口的定义以及实现; 伪代码:? 接口: public String getWeather(String name);? 实现:?public String getWeather(String name){ return name+"地区天气是晴,风力6级,适合放风"。 } C、web.xml配置文件:(和spring很好的集成了,所以用起来也比较的爽,配置如下) <context-param> webservice 发布文件: <!-- webservice --> 完成了这些,在tomcat中发布一下,去浏览器验证发布是否有效,输入: http:// local IP:8080/WebServer/services/WebService?wsdl? 如果有相关信息展示,则证明发布成功,如果没有则看错误日志。 D:客户端的验证 可以使用eclipse的默认功能,新建一个项目,在New- Webservice client -service definition 中输入以上验证,系统会自动 生成相关的代码提供你去校验是否真实有效(略)。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |