前言:朋友們開始以下教程前,請先看第五大點的注意事項,以避免不必要的重復操作。
本文引自:http://www.iteye.com/topic/1135747
一、准備工作(以下為本實例使用工具)
1、MyEclipse10.7.1
2、JDK 1.6.0_22
二、創建服務端
1、創建【Web Service Project】,命名為【TheService】。
2、創建【Class】類,命名為【ServiceHello】,位於【com.hyan.service】包下。
3、編寫供客戶端調用的方法,即編譯方法代碼。
4、進行編譯
說明:編譯失敗的話,請將該項目引用的jdk設置為1.6.0_17版本或更高版本
5、測試結果
測試地址:http://localhost:9001/Service/ServiceHello?wsdl
三、生成客戶端
1、創建【Web Service Project】,命名為【TheClient】。
2、命令提示窗口執行生成命令。
格式:wsimport -s "src目錄" -p “生成類所在包名” -keep “wsdl發布地址”
示例:
wsimport -s G:\\workspace\\webService\\TheClient\\src -p com.hyan.client -keep http://localhost:9001/Service/ServiceHello?wsdl
說明:
1)"src目錄"地址不可含空格
2)“wsdl發布地址”不要漏了“?wsdl”
3、刷新項目,檢查生成類
四、最終測試
1、創建【Class】類,命名為【ServiceTest】,位於【com.hyan.test】包下。
2、編寫測試方法,調用服務端方法,並打印返回的結果。
五、注意事項
1、JDK版本過低問題
報類似如下的異常:runtime modeler error: Wrapper class com.hyan.service.jaxws.GetValue is not found. Have you run APT to generate them?
原因:JDK版本低於1.6.0_17
解決方法:調整該服務端項目所引用的JDK版本為安裝的高版本JDK
2、生成命令路徑含空格問題
報類似如下的異常:directory not found: G:\SVN_FILE\GB\05
原因:客戶端src路徑不可含有空格
解決方法:在不含空格路徑的文件夾下重新創建客戶端即可。
3、生成命令不完整問題
報類似如下的異常:[ERROR] failed.noservice=Could not find wsdl:service in the provided WSDL(s):
原因:生成命令末尾缺少“?wsdl”
解決方法:補上即可。
錯誤不完整的命令示例:
wsimport -s G:\\workspace\\webService\\TheClient\\src -p com.hyan.client -keep http://localhost:9001/Service/ServiceHello
正確完整的命令示例:
wsimport -s G:\\workspace\\webService\\TheClient\\src -p com.hyan.client -keep http://localhost:9001/Service/ServiceHello?wsdl