(三)調用web服務
阿新 • • 發佈:2017-10-11
第一個 技術 new res 調用服務 col static package 地址
- (二)發布第一個WebService服務與DSWL文檔解析 講解了如何發布一個web服務,本章主要講述如何調用一個web服務。
- 這裏有三種方式:
- 使用代理模式調用,需要將服務端的接口類拷貝到客戶端中。(不常用,因為不大可能拿到服務端的接口類。)
- 通過客戶端樁的方式。
3. 發送原始的soap消息。
一、使用代理模式
- 需要將服務端的接口類拷貝到客戶端中。
- 本例所調用的服務為(二)發布第一個WebService服務與DSWL文檔解析 這個章節所發布的web服務,也就是說需要把該服務的接口類拷貝到客戶端中。
package test; importjava.net.MalformedURLException; import java.net.URL; import javax.xml.namespace.QName; import javax.xml.ws.Service; import service.WebService_1; /** * 使用代理模式 1.需要將服務端的接口類拷貝到客戶端中。 * * @author Administrator * */ public class Test { public static void main(String[] args) { try {// wsdlDocumentLocation是所調用服務的wsdl地址 URL wsdlDocumentLocation = new URL("http://localhost:3031/first?wsdl"); // QName構造函數的第一個參數是所調用服務的wsdl的命名空間。第二個參數是所調用的服務名 QName serviceName = new QName("http://service/", "WebService_1_implService"); Service service = Service.create(wsdlDocumentLocation, serviceName);//通過getport獲取到的是一個代理對象,而不是接口對象 WebService_1 webService_1 = service.getPort(WebService_1.class); int result = webService_1.add(25, 10); System.out.println("result===" + result); } catch (Exception e) { e.printStackTrace(); } } }
結果:
二、客戶端樁
-
通過wsdl地址或者wsdl文檔,生成客戶端的調用類,被稱為客戶端樁的方式。
- 步驟:
- 使用eclipse/myeclipse工具來生成客戶端(內部調用jdk命令)(本例中使用)。
- 使用jdk命令來生成客戶端。
-
該圖為jdk命令,其中 -d表示存放客戶端代碼的目錄,http://localhost:4040/first?wsdl為要生成客戶端的wsdl文檔地址。
該命令生效後,會生成目錄:
其中,客戶端代碼就在這個目錄下。
- 案例:(使用工具生成客戶端)
- 本例所調用的服務為(二)發布第一個WebService服務與DSWL文檔解析 這個章節所發布的web服務
1. 生成客戶端。
package test; import java.rmi.RemoteException; import service.WebService_1; import service.WebService_1Proxy; public class Test { public static void main(String[] args) throws RemoteException { WebService_1 weService_1 = new WebService_1Proxy().getWebService_1(); int res = weService_1.add(20, 50); System.out.println("res=" + res); } }
結果:
三、發送原始的soap消息
(三)調用web服務