webService在老項目中經常使用,包括現在有的銀行,保險的項目中還在使用。WebService是一種跨平臺的rpc技術協議。由SOAP,UDDI,WSDL組成。soap是一種使用xml進行數據編碼的通信協議,獨立於任何語言,簡單可擴展,soap提供了一種標準方法使得不同機器上使用不同語言編寫的程序可以相互通信。UDDI是一個獨立於平臺的框架。WSDL是使用XML編寫的網絡服務描述語言,用來描述WebService,以及如何訪問WebService。
WebService有兩種經典的實現方式:CXF,以及Axis2
CXF
Apache CXF是一個開源的WebService RPC框架。它有以下特點:
- 支持WebService標準,包括soap規範,WSI Basic Profile,WSDL,WS-Addressing,WS-Policy等。
- 支持JSR相關規範,包括JZX-WS,JAX-RS,SAAJ
- 支持多種傳輸協議,協議綁定以及數據綁定。協議綁定:soap,rest/http,xml。數據綁定:JAXB 2.X,Apache XMLBeans 等。
Axis2
Axis2是Axis的後續版本,是新一代的soap引擎,是cxf之外另一個很經典的WebService的實現。它具備以下幾個特點
- 高性能。具有自己輕量級對象模型AXIOM,比Axis1的內存消耗耕地
- 熱部署。具備了在系統啟動和運行時部署web服務和處理功能,也就是說,在不關閉服務的情況下可以將新服務添加到系統。
- 支持異步服務。支持非阻塞客戶端和傳輸的異步以及web服務和異步web服務調用。
- WSDL支持。支持web服務描述語言版本1.1和2.0,它允許輕鬆構建存根以訪問遠程服務
spring boot集成cxf實現webservice
1)創建UserService
2)創建UserService實現類UserServiceImpl
3)配置webService
4)編寫application.yml
5)運行WebServiceApplication的main方法。用瀏覽器訪問:http://localhost:8080/services/user?wsdl
出現以上效果證明,服務方配置成功
6)編寫客戶端調用:
7),運行WebServiceClientmain方法,輸出效果:
在集成的時候注意兩個方面:我的:
springboot版本 --> 2.1.7.RELEASE
cxf-spring-boot-starter-jaxws 版本 --> 3.3.1
注意在application.yml的配置:cxf.path: /services
以上就是webService的rpc實現方式。很簡單,現在應該還有很多企業在用這種方式。
以上是我本人對@webService的理解,如果有不對之處,證明本人學業不精,還望大家指正和諒解,提出寶貴意見。公眾號:
本人水平有限,難免有錯誤或遺漏之處,望大家指正和諒解,提出寶貴意見,願與之交流。
閱讀更多 MrH學習者 的文章