WebService技術,服務端and客戶端JDK-wsimport工具(一)
使用webservice服務,需要了解幾個名詞:soap 簡單對象協議、http+xml 、 WSDL
先看下代碼結構:
服務端代碼與客戶端代碼分別處於兩不同的包中
一、服務端內容
服務端:
@WebService註解,表明這個一個對外提供為webservice的服務類。
@WebMethod註解,表明這是webservice中的一個可以調用的方法。
還可以設置其他註解,(註解會在wsdl文檔中體現出來)。
WebServiceImp.java代碼:
1 package com.webservice; 2 3 import javax.jws.WebMethod;4 import javax.jws.WebService; 5 import javax.xml.ws.Endpoint; 6 @WebService 7 public class WebServiceImp { 8 @WebMethod 9 public String getInfo(String id){ 10 String info=""; 11 if (id.equals("1")) { 12 info="張三"; 13 }else if (id.equals("2")) {14 info="李四"; 15 }else if(id.equals("3")){ 16 info="王五"; 17 }else if(id.equals("4")) { 18 info="趙六"; 19 }else { 20 info="用戶不存在"; 21 } 22 return info; 23 } 24 public static void main(String[] args) {25 Endpoint.publish("http://127.0.0.1:8080/WebService", new WebServiceImp()); 26 } 27 }
1、 在main方法中使用 Endpoint.publish(url,object)來發布wsdl.代碼中發布webservice的地址是:http://127.0.0.1:8080/WebService,把地址復制到瀏覽器地址欄我們在後面加上?wsdl,可以看到如下內容:
2、此時證明webservice已經發布成功。
發布成功後,使用軟件測試,是否請求訪問得到結果。此處使用SoapUI Pro ,圖形化界面,容易測試,新建項目,項目名稱隨意,inital wsdl:填入在代碼生成的地址
(http://127.0.0.1:8080/WebService?wsdl)。填入參數,點擊綠色的三角形發送請求,右邊出現拿到結果,說明此webservice是可用的,至此,服務端完成。
二、客戶端內容
1、使用jdk自帶的工具,能夠生成客戶端代碼。找到安裝JDK的bin目錄,就可以看到所使用的工具
wsimport的常用命令有:
①. -d <directory> 在指定的目錄生成class文件 ②. -clientjar <jarfile> 在當前目錄生成jar文件,結合-d <directory>可以在指定的目錄生成jar文件 ③. -s <directory> 在指定的目錄生成java源文件 ④. -p <pkg> 指定生成文件的包結構 ⑤. -keep 在生成class文件,或者jar包時,同時保留java源文件 2、打開cmd命令行進入到src的目錄下,執行生成代碼命令
3、看到已經生成了java和class文件,回到開發工具刷新一下,可以看到剛才生成的Java文件,
4、看wsdl文檔的時候,最好是從下往上看,這樣會比較清晰一點。wsimport根據wsdl文檔內容生成代碼,使用生成的代碼,編寫客戶端代碼,新建一個MyClient.java
1 package webservice; 2 3 public class WebClient { 4 public static void main(String[] args) { 5 ServiceIntService serviceIntService=new ServiceIntService(); 6 ServiceInt ServiceInt =serviceIntService.getServiceIntPort(); 7 System.out.println(ServiceInt.getInfo("1")); 8 System.out.println(ServiceInt.getInfo("2")); 9 System.out.println(ServiceInt.getInfo("4")); 10 System.out.println(ServiceInt.getInfo("100")); 11 } 12 }
5、運行MyClient,看到調用服務端的提供的服務,返回結果。
WebService技術,服務端and客戶端JDK-wsimport工具(一)