1. 程式人生 > >WebService服務端與客戶端得簡單應用,效能測試

WebService服務端與客戶端得簡單應用,效能測試

用途: 比如需要從其他系統獲取資訊,但是不能暴露自己得實現方式的時候。

比較常用得有: 1.HttpClient 2.WebService (推薦使用WebService)

一.簡單介紹

服務端:  暴露出一個URL地址即可,列入

   

可以發現訪問進去就是一個XML檔案

從下往上看

這個fisrtWebServiceImplService就是暴露出來得一個方法

具體程式碼:

FisrtWebServiceImplService f = new FisrtWebServiceImplService(); //獲取到一個物件

繼續往上看

portType   咋們可以 用上面物件f     FisrtWebServiceImpl port = f.getFisrtWebServiceImplPort();

operation具體方法  System.out.println(port.getAddressByPhoneNo("13120090804"));即可調到具體得方法

二.正式開始自己寫服務,自己去調服務

1.先寫服務端(Service)(注意要求JDK1.8)

   1.1 建立一個介面  

package webServiceWeb; /**  * @author 葉成浪   * @time 2018年11月13日 - 下午4:38:26  * @email [email protected]  **/ public interface FisrtWebService {          String getAddressByPhoneNo(String phoneNo);

}

1.2 接著寫實現類(注意:採用註解@WebService)

package webServiceWeb.impl;

import javax.jws.WebService;

import webServiceWeb.FisrtWebService;

/**  * @author 葉成浪   * @time 2018年11月13日 - 下午4:40:04  * @email [email protected]  **/ @WebService public class FisrtWebServiceImpl implements FisrtWebService {

    @Override     public String getAddressByPhoneNo(String phoneNo) {         return phoneNo+"歸屬於北京";     }

}

1.3 釋出服務

package Test01WebService;

import javax.xml.ws.Endpoint;

import webServiceWeb.impl.FisrtWebServiceImpl;

public class Test01 { public static void main(String[] args) {         Endpoint.publish("http://localhost:8888/weather?wsdl", new FisrtWebServiceImpl());         System.out.println("釋出成功");     } } 服務端釋出成功  (如果要停止服務  doc命令採用  taskkill /f /PID PID) 即可刪除服務埠

2.客服端呼叫WebService

2.1 通過doc命令生成程式碼

    wsimport -s . http://localhost:8888/weather?wsdl                   即可把WebService程式碼生成到本地

2.2 客戶端調取伺服器方法獲取具體得資料

package Test;

import java.net.MalformedURLException; import java.net.URL;

import javax.xml.namespace.QName; import javax.xml.ws.Service;

import webserviceweb.impl.FisrtWebServiceImpl;

public class Test02 {

    public static void main(String[] args) {                  //方式一 調伺服器方法 //        FisrtWebServiceImplService f = new FisrtWebServiceImplService(); //        FisrtWebServiceImpl port = f.getFisrtWebServiceImplPort(); //        System.out.println(port.getAddressByPhoneNo("13120090804"));                           //方式二 調伺服器方法         try {             Service service = Service.create(new URL("http://localhost:8888/weather?wsdl"),                     new QName("http://impl.webServiceWeb/", "FisrtWebServiceImplService"));             FisrtWebServiceImpl impl = service.getPort(FisrtWebServiceImpl.class);             System.out.println(impl.getAddressByPhoneNo("13120090804"));         } catch (MalformedURLException e) {             // TODO Auto-generated catch block             e.printStackTrace();         }     }

}