SpringBoot的Web Service類型常見有RESTful Web Service和SOAP Web Service兩種,RESTful風格的web服務比較常用,但實際工作中仍有部分場景用到SOAP Web Service。SpringBoot實現SOAP Web Service的方式有多種,個人覺得cxf比較簡單,下面采用cxf來實現。
1.添加maven依賴
2.根據實際應用場景開發Web Service
接口類:
實現類:
這里以最簡便的方式實現業務邏輯,關鍵是注解的使用,此外還可以通過@SOAPBinding、@WebResult等注解以及上述注解的一些屬性對服務進行配置,這里不再贅述。
3.添加配置發布Web Service
SpringBoot框架最大的優點之一就是簡化配置,習慣優先於配置,因此大部分配置都有默認值,不需要我們去配置。當需要個性化配置時,通常用java類的配置方式來代替繁瑣的xml配置,簡潔直觀,不易出錯;即使出現錯誤,也能借助IDE在編譯時期發現和精確定位,而xml配置卻是在運行時才能發現,而且不好定位。
可以同時發布多個服務, 每個服務配置一個Endpoint Bean,這里只配置一個服務。
4.運行springboot項目
看到上面項目啟動的日志信息,證明服務發布成功,注意soap webservice默認在發布路徑加上/services,可以在配置類中增加如下代碼改變該路徑
public ServletRegistrationBean dispatcherServlet() {
/* “/soap/*”為自己配置的soap webservice發布路徑前綴 */
return new ServletRegistrationBean(new CXFServlet(), "/soap/*");
}
下面用soapUI工具調用服務接口
至此,soap Web Service服務已成功發布。