使用 CXF 整合 Spring 開發 Web Service

Nix.Huang發表於2015-05-26

CXF和sping具有很好的結合性,所以CXF是Java 程式設計師開發web service最佳的選擇,本文是一個入門的例子,基本是Writing a service with Spring 的一個拷貝,希望能給那些不想去倒騰CXF官方例子的同仁一點幫助,

服務端的開發步驟:

1、新建maven工程,在pom.xml中新增相應的依賴。
2、定義pojo, 見User
3、定義SPE, 見HelloWorld.java
4、實現服務,見HelloWorldImpl.java
5、配置spring上下文,見applicationContext.xml
6,部署到web 容器,比如tomcat。

客戶端的開發步驟

1、新建maven工程,在pom.xml中新增相應的依賴。
2、將服務端的pojo類和SPE拷貝過來,保持包名一致。
3、配置spring上下文,見applicationContext.xml
4、建立ClassPathXmlApplicationContext 進行測試。

記錄下有用的點:

1、cxf預設使用的是Java SE Logging  日誌框架,要想使用log4j, 需要在classpath中新增log4j.properties檔案和提供”-Dorg.apache.cxf.Logger=org.apache.cxf.common.logging.Log4jLogger“jvm 引數,如圖:

test-cxf-1

2、在web.xml中宣告CXFServlet 的url-pattern時,最好不要對映成根路徑,比如”/services/*”,這樣所有的web service服務都部署在一個統一的路徑中,而”/services”成為路徑的一部分。

3、當使用soap協議時,使用jaxb框架來進行Java 類和xml 轉換的,所以加上@XmlRootElement 註解。

DEMO下載:test-cxf.zip

相關文章