在服務端生成wsdl目錄
首先進入dos指令視窗,定位到項目根目錄,如:
C:\Users\wanzheny\workspace\baidumap
執行指令行:
wsgen -cp C:\Users\wanzheny\workspace\baidumap\WebContent\WEB-INF\classes com.ws.impl.Hello -wsdl -s src -r wsdl
解釋:
-cp後跟的是項目的classes路徑以及要生成ws的類全路徑,如果該目錄找不到,參考我的前一篇文章。
Eclipse下無法自動編譯,或者WEB-INF/classes目錄下沒檔案,編譯失敗的解決辦法
-s:後面跟上source folder,即源檔案路徑。
-d 指定生成的class檔案的位置。
-r 指定生成的resources檔案的位置。如WSDL、XSD 的位置。該路徑需要自己手動建立。
-wsdl -servicename,-portname 三個參數指定生成的 WSDL 檔案中的 service 和 port 的名稱。 注意:這裡的SEI是一個 endpoint implementation class,而不是一個接口。必須先寫好一個endpoint的實作類,該類中用@WebService聲明好WebService,再将它編譯成class檔案,才能提供給wsgen使用。
在用戶端導入服務端輔助代碼
Usage:wsimport [options] <WSDL_URI> 主要選項:
同樣先到dos指令下,定位到用戶端所在的跟路徑下,如:
C:\Users\wanzheny\ws3\client
執行指令:
wsimport -keep http://localhost:8080/baidumap/HelloService?wsdl -d src
解釋:
-keep 後面跟上wsdl的通路路徑。
-d 指定生成的 class 檔案的位置,一般放置到src目錄下。
-s指定生成的 Javasource 檔案的位置。
-wsdllocation指定生成的Java source中@WebService.WSDLLocation和 @WebServiceClient. wsdllocation的值