第一篇:CXF理论篇
在Java领域,WebService的框架很多,例如:AXIS,XFire,CXF等。AXIS,XFire相对比较成熟。
Axis全程Apache Extensible Interaction System即Apache可扩展交互系统。是第三代Apache SOAP。本质上就是一个SOAP引擎,但不完全是一个SOAP引擎,它还是一个独立的SOAP服务器和一个嵌入Servlet引擎的服务器。
XFire是新一代的Java Web服务引擎,可以非常容易地和Spring集成。是codeHaus组织提供的一个开源框架,构建了POJO和SOA之间的桥梁,主要特性就是支持将POJO通过非常简单的方式发布成Web服务。
Apache CXF项目是由ObjectWeb Celtix和CodeHaus合并成立。 CXF框架是一种基于Servlet技术的SOA应用开发框架,要正常运行基于CXF应用框架开发的企业应用,除了CXF框架本身之外,还需要JDK和Servlet容器的支持。
Apache CXF= Celtix + Xfire支持多种协议:
1)SOAP1.1,1.2
2)XML/HTTP
3)CORBA(Common Object Request BrokerArchitecture公共对象请求代理体系结构,早期语言使用的C,c++,C#)并可以与Spring进行快速无缝的整合
4)灵活的部署:可以运行在Tomcat,Jboss,Jetty,IBMWwbSphera,BeaWebLogic上面。
CXF的结构
BUS:是CXF的主干,为共享资源提供了一个可配置的场所,类似于Spring的ApplicationContext.默认Bus是基于Spring的。
Interceptor:CXF建立于一个通用的消息层之上,主要由消息,拦截器和拦截器链组成。
Service Model服务模型,有ServiceInfo和服务本身。ServiceInfo作用类似于WSDL,包含接口信息,绑定,端点等信息;服务包含ServiceInfo,数据绑定,拦截器和服务属性等。可使用Java类和WSDL来创建服务。一般是由前端负责服务的创建,通过ServiceFactory来完成。
Bindings:停工在传输之上映射的具体格式和协议方法。BindingFactory负责创建Binding。
Transports:向绑定和前端屏蔽传输细节。
总结
CXF并不是Web Service,CXF只是发布调用Web Service的工具而已。Web Service是一种标准,规范。