webservice接口開發學習筆記(一)

前言

有一段時間沒有好好學習了,因爲遇到一些糟心的事情,上班一直在划水摸魚,本來打算摸魚摸到事情塵埃落定。但想到與其摸魚,還不如多學習點東西,不斷的成長提升自己。

webservice簡介

webservice:一種跨語言和跨平臺的遠程調用技術,即JAVA應用程序可以通過websrvice調用PHP或者Python等程序提供的服務,反之亦然。
實現一個webservice需要了解它的幾個重要點(SOAP,WSDL,UDDI)

SOAP

簡單來說: SOAP = HTTP + XML 就是一個簡單的數據交換協議
客戶端通過發送一個HTTP請求,這個HTTP請求裏面包含一個XML,服務端接收到請求後解析這個XML然後來調用對應的服務和方法,返回對應的數據。

WSDL

簡單來說:WSDL就是告訴調用者應該怎麼填寫SOAP當中的XML文件裏面的內容。服務端具體提供了什麼服務,該怎麼調用這個服務,該傳遞什麼類型的參數。會返回什麼類型的數據等等。

UDDI

簡單來說:UDDI是用於描述、發現、集成Web Service的技術。

webservice相關框架

  • JWS:JAVA語言對WebService服務的一種實現,可以用於開發以及發佈webservice服務。
  • Axis2:一個重量級的webservice框架,功能強大。
  • CXF:一個基於XFire改造後的webservice框架,高性能,開發比較方便。

webservice接口和http接口的區別

web service相對http (post/get)
1.接口中實現的方法和要求參數一目瞭然
2.不用擔心大小寫問題
3.不用擔心中文urlencode問題
4.代碼中不用多次聲明認證(賬號,密碼)參數
5.傳遞參數可以爲數組,對象等…
6.由於要解析XML,效率相對較慢。
7.在對參數要求不嚴謹的情況下完全可以由HTTP請求代替。

一個簡單的webservice服務

通過JAVA自帶的JWS發佈一個webservice服務。

客戶端代碼:

1 在類上加上註解:@webservice表明這是一個webservice服務

@WebService
public class DemoWebServiceImpl {
    @Override
    @WebMethod
    public String getName(Integer code) {
        if(code==1){
            return "張三";
        }
        return "李四";
    }
}

2 通過Endpoint 發佈一個webservice服務。

   public static void main(String[] args) {
        //設置webservice地址
        String address = "http://192.168.15.234:9090/webservice";
        //發佈webservice
        Endpoint.publish(address , new DemoWebServiceImpl());
        System.out.println("hello world");
    }

3 在瀏覽器當中輸入地址:http://192.168.15.234:9090/webservice?wsdl 如果返回一個xml就表明發佈成功了。
在返回的xml當中每個方法對應一個XSD地址。在瀏覽器當中輸入對應的xsd地址就可以看到該方法需要的參數和返回的值類型。

服務端調用:

通過測試工具SOAPUI進行模擬調用:
在這裏插入圖片描述在這裏插入圖片描述一個簡單的webservice服務就搞定了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章