CXF框架介紹及Spring集成


1、CXF框架概念介紹

  Apache CXF 是一個開源的 WebService 框架,CXF可以用來構建和開發 WebService,這些服務可以支持多種協議,比如:SOAP、POST/HTTP、HTTP ,CXF 大大簡化了WebService並且可以天然地和 Spring 進行無縫集成。CXF是 Celtrix (ESB框架)和 XFire(webserivice) 合並而成,核心是org.apache.cxf.Bus(總線),類似於Spring的 ApplicationContext,CXF默認是依賴於Spring的,另 CXF 發行包中的jar,如果全部放到lib中,需要 JDK1.6 及以上,否則會報JAX-WS版本不一致的問題。CXF 內置了Jetty服務器 ,它是servlet容器。

2、CXF框架特點

  A、與Spring、Servlet做了無縫對接,cxf框架里面集成了Servlet容器Jetty

       B、支持注解的方式來發布webservice

       C、能夠顯示一個webservice的服務列表

       D、能夠添加攔截器:輸入攔截器、輸出攔截器 :輸入日志信息攔截器、輸出日志攔截器、用戶權限認證的攔截器

3、使用CXF框架發布一個WebService

  步驟一、

  使用CXF框架發布WebService需導入CXF框架的相關Jar包,此處引用的cxf版本為3.1.8,可在官方下載該版本后導入lib目錄中的所有jar包

  步驟二、

       發布一個帶接口的開發語言排行榜的WebService,編寫接口和實現類如下

  

  

  步驟三、

  JaxWsServerFactoryBean是ServerFactoryBean的子類,也是功能擴展類。該類可用來發布WebService,此類必須要在被發布為服務的類上添加@WebService注解,如果不加注解,雖然不出錯,但也不會對外暴露任何方法。使用此類生成的wsdl文件更加規范,更重要的是可以通過添加攔截器攔截請求,具體實現代碼以及代碼解釋如下:

   

4、使用CXF框架和Spring框架集成發布一個WebService

  前面的服務發布包括創建服務類都是硬編碼的方式,額是否可以使用配置的方式來發布服務類呢,答案是肯定的。這就要同Spring集成了, 由於CXF的項目已經集成了Spring(自帶了Spring lib)所以CXF的服務都是在Spring的配置文件中完成的。

  步驟一、

  部署Spring環境,導入CXF和Spring的相關Jar包,此處導入的為3.1.8的cxf和4.2.3的spring版本

  步驟二、

  編寫一個操作員工信息的接口和業務實現類,接口中包含添加和查詢員工的方法

  包結構和類編寫代碼如下圖:

  

  

   

     

  步驟三、

  配置web.xml文件,在web.xml中配置Spring的監聽器,該監聽器用來自動裝配ApplicationContext的配置信息。還要配置CXF的Servlet信息,用來處理WebService的請求,具體配置信息如下,其中<url-pattern>/spring/*</url-pattern>為過濾路徑,參見上文中的包結構,不同的包結構配置不同的過濾路徑。

    

  步驟四、

  配置ApplicationContext.xml文件,首先按如下截圖添加必要的路徑

  

  接着配置業務實現類,即用來提供方法的EnployeeManagerImpl類。然后配置CXF,我們需要配置的東西有三樣,分別是業務類接口,業務實現類和輸入輸出攔截器,完成之后便完成了CXF和Spring集成的WebService配置。

  

  步驟五、

  啟動工程,當看到類似如下截圖時,證明CXF和Spring集成的服務發布成功,並公布了服務中的方法,即上文中添加和查詢員工的方法。

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM