網上說wsimport是jdk1.6后自帶的客戶端生成調用webservice接口的工具,其實我挺喜歡原生的東西,畢竟自家的東西用着應該最順手啊,但往往讓人驚艷的是那些集成工具。
本機jdk1.8.1的,直接按網上說的wsimport -keep -p wsimport.test http://****:****/***.wsdl 報警報錯,報警warning可以忽略,但錯誤error 難以解決,說具有相同名稱 "xxx" 的類/接口已在使用。請使用類定制設置來解決此沖突。找了許多資料,包括程序猿題解天堂stackoverflow找到的也不好使。某度找到的只有4個答案,有三個答案是關於添加-autoNameResolution,結果 wsimport 加上提示根本不存在該屬性啊,,,,
於是決定用wsdl2java,本來以為要安裝什么東西,公司那破網速簡直不敢,看了介紹只需要下載解壓,添加到系統路徑path即可,找了官網可下載的最新鏈接,按照網上的說法添加到系統路徑,先添加屬性CXF_HOME和值D:\Program Files\Java\apache-cxf-3.2.7,然后添加path屬性%CXF_HOME%\bin,可是我的win10系統仍然提示不是內部命令,於是直接將D:\Program Files\Java\apache-cxf-3.2.7\bin 添加到path系統路徑,重新開啟cmd,成功!
wsdl2java http://***:****/***.wsdl 默認生成com.oracle.*.*.****包名,可以自定義 wsdl2java -p wsdl2java.test http://***:****/***.wsdl ,如果報:具有相同名稱 "xxx" 的類/接口已在使用。請使用類定制設置來解決此沖突。可添加 -autoNameResolution 解決。
wsdl2java -p wsdl2java.test -autoNameResolution http://***:****/***.wsdl
添加 -client 可以自動生成main測試代碼 wsdl2java -p wsdl2java.test -client -autoNameResolution http://***:****/***.wsdl