第1篇:CXF理論篇
在Java領(lǐng)域,WebService的框架很多,例如:AXIS,XFire,CXF等。AXIS,XFire相對(duì)照較成熟。
Axis全程Apache Extensible Interaction System即Apache可擴(kuò)大交互系統(tǒng)。是第3代Apache SOAP。本質(zhì)上就是1個(gè)SOAP引擎,但不完全是1個(gè)SOAP引擎,它還是1個(gè)獨(dú)立的SOAP服務(wù)器和1個(gè)嵌入Servlet引擎的服務(wù)器。
XFire是新1代的Java Web服務(wù)引擎,可以非常容易地和Spring集成。是codeHaus組織提供的1個(gè)開源框架,構(gòu)建了POJO和SOA之間的橋梁,主要特性就是支持將POJO通過非常簡(jiǎn)單的方式發(fā)布成Web服務(wù)。
Apache CXF項(xiàng)目是由ObjectWeb Celtix和CodeHaus合并成立。 CXF框架是1種基于Servlet技術(shù)的SOA利用開發(fā)框架,要正常運(yùn)行基于CXF利用框架開發(fā)的企業(yè)利用,除CXF框架本身以外,還需要JDK和Servlet容器的支持。
Apache CXF= Celtix + Xfire支持多種協(xié)議:
1)SOAP1.1,1.2
2)XML/HTTP
3)CORBA(Common Object Request BrokerArchitecture公共對(duì)象要求代理體系結(jié)構(gòu),初期語(yǔ)言使用的C,c++,C#)并可以與Spring進(jìn)行快速無(wú)縫的整合
4)靈活的部署:可以運(yùn)行在Tomcat,Jboss,Jetty,IBMWwbSphera,BeaWebLogic上面。
CXF的結(jié)構(gòu)
BUS:是CXF的主干,為同享資源提供了1個(gè)可配置的場(chǎng)所,類似于Spring的ApplicationContext.默許Bus是基于Spring的。
Interceptor:CXF建立于1個(gè)通用的消息層之上,主要由消息,攔截器和攔截器鏈組成。
Service Model服務(wù)模型,有ServiceInfo和服務(wù)本身。ServiceInfo作用類似于WSDL,包括接口信息,綁定,端點(diǎn)等信息;服務(wù)包括ServiceInfo,數(shù)據(jù)綁定,攔截器和服務(wù)屬性等。可以使用Java類和WSDL來(lái)創(chuàng)建服務(wù)。1般是由前端負(fù)責(zé)服務(wù)的創(chuàng)建,通過ServiceFactory來(lái)完成。
Bindings:停工在傳輸之上映照的具體格式和協(xié)議方法。BindingFactory負(fù)責(zé)創(chuàng)建Binding。
Transports:向綁定和前端屏蔽傳輸細(xì)節(jié)。
總結(jié)
CXF其實(shí)不是Web Service,CXF只是發(fā)布調(diào)用Web Service的工具而已。Web Service是1種標(biāo)準(zhǔn),規(guī)范。