一、什么是CXF?
Apache CXF = Celtix + Xfire,開始叫 Apache CeltiXfire,后來更名為 Apache CXF 了,以下簡稱為 CXF。Apache CXF 是一個開源的 web Services 框架,CXF 幫助您構建和開發 web Services ,它支持多種協議,比如:SOAP1.1,1,2 XML/HTTP、RESTful 或者CORBA。
RESTful: 一種風格而不是一個協議。它理念是網絡上的所有事物都被抽象為資源,每個資源對應一個唯一的資源標識符。
Cxf是基於SOA總線結構,依靠spring完成模塊的集成,實現SOA方式。
靈活的部署: 可以運行在Tomcat,Jboss,Jetty(內置),weblogic上面。
環境變量的配置
CXF_HOME: 安裝目錄。
Path: bin目錄。
二、使用CXF發布jax-ws規范的WebService
1.服務端
第一步: 創建一個java工程
第二步: 導入cxf的jar包。138個
第三步: 編寫SEI接口。需要在SEI接口上添加@Webservice注解。
第四步: 編寫SEI實現類。不需要加注解。
第五步: 發布服務
1、創建一個JaxWsServerFactoryBean對象
2、設置SEI接口setServiceClass
3、設置SEI實現類對象。setServiceBean
4、設置服務發布地址。setAddress
5、發布服務。Create
POJO
SEI
SEI實現類
發布服務
查看服務
2.wsdl3java命令
3.客戶端開發
(1)傳統客戶端開發
結果:
日期: 2016-07-27
最高溫度: 30
最低溫度: 20
天氣信息: 北京: 今天很熱
============================================
日期: 2016-07-28
最高溫度: 31
最低溫度: 21
天氣信息: 北京: 今天小雨
============================================
日期: 2016-07-29
最高溫度: 32
最低溫度: 22
天氣信息: 北京: 今天大雨
============================================
(2)使用CXF實現客戶端
步驟:
1、導入cxf的jar包
2、創建一個JaxWsProxyFactoryBean對象
3、設置一個PortType的class。
4、設置一個address。服務端的url包括ip及端口。
5、調用create方法生成PortType代理對象。
6、調用服務端方法
7、打印結果。
結果:
日期: 2016-07-27
最高溫度: 30
最低溫度: 20
天氣信息: 上海: 今天很熱
============================================
日期: 2016-07-28
最高溫度: 31
最低溫度: 21
天氣信息: 上海: 今天小雨
============================================
日期: 2016-07-29
最高溫度: 32
最低溫度: 22
天氣信息: 上海: 今天大雨
============================================