1. 程式人生 > >解決cxf+spring釋出的webservice缺少和標籤的問題

解決cxf+spring釋出的webservice缺少和標籤的問題

最近學習cxf+spring釋出webservice服務,但是遇到服務釋出成功,檢視其wsdl檔案的時候卻缺少<wsdl:import><wsdl:message>標籤,檢視程式碼確實沒什麼問題,因為用來測試,程式碼比較簡單,但就是不出現以上兩個標籤。百度谷歌到處找原因找不到。失望……

還是自己好好動手解決問題吧。

認真看釋出後的wsdl檔案,發現多了<wsdl:import>標籤(<wsdl:importlocation="http://localhost:8080/cxf-Spring-server/Hello?wsdl=HelloWorld.wsdl" namespace

="http://dao.testCxfSpring.spg.com/"></wsdl:import>),將<wsdl:import>標籤中的location拿出去在瀏覽器中開啟,裡面是“丟失”的兩個標籤,這時候就發現其實並不是丟失了,而是包含在了<wsdl:import>標籤內

為什麼會包含在了<wsdl:import>標籤內?再研究,發現<wsdl:definitions>標籤內的targetNamespace屬性和<wsdl:import>namespace屬性的值不同,發現原因所在

最終解決方案

1,將介面類和實現類放在同一個包下,問題即可解決

2,將介面類和實現類中的註解中加入名稱空間屬性配置,@WebService(targetNamespace="XXXXX"),兩個配置成一樣即可,或者介面的配置成實現類的預設值、實現類的配置成介面的預設值也可解決問題。