Web Service 介紹及實現方式

        隨着企業之間聯繫的不斷緊密,企業之間的系統服務也不斷接受新的挑戰。例如一個金融公司與一家大數據公司展開了合做,金融公司須要調用大數據公司的數據來完成自身業務的開展。那麼服務之間的調用是怎麼實現呢?Http能夠實現,但我以爲web service 是討論這類問題時不能避開的一個答案。java

        Web Service個人理解是更接近一種規範了,實現了這套規範的系統,能夠互相之間交互數據已完成業務上的調用。它的特色有跨語言、跨平臺,可以實現不一樣語言之間的互聯互通。歸結一句話:Web Service就是一種跨編程語言和跨操做系統平臺的遠程調用技術。web

        Web Service聽從的協議叫作SOAP協議,全稱叫作 Simple Object Access Protocol,簡單對象訪問協議。Web Service服務傳輸的數據格式是XML形式組織的,經過HTTP協議發送和接收結果。所以咱們能夠簡便的理解爲:SOAP協議=HTTP協議+XML數據格式。編程

       還有一個重要概念要提,就是WSDL( Web Services Description Language ),發佈好一個web service 服務後怎麼檢查服務是否正常,答案就是查看WSDL文件。查看方式一般是在瀏覽器中打開服務的發佈地址,而後後面加上 .wsdl便可。瀏覽器

        下面咱們發佈個簡單的服務。編程語言

        服務端代碼以下:函數

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;

@WebService
public class HelloService {
    private String sayHello(String name) {
        System.out.println("hello " + name);
        return "Hello " + name;
    }

    @WebMethod
    public String sayHi(String name) {
        return this.sayHello(name);
    }

    public static void main(String[] args) {
        Endpoint.publish("http://localhost:8081/sayhi", new HelloService());
    }
}

        代碼和明晰,HelloService 是一個Web Service服務類,它對外提供了一個調用方法:sayHi。main函數中,咱們用Endpoint來發布這個服務,發佈方法的參數是地址、服務實例。工具

        話很少述,啓動main函數。在瀏覽器中輸入地址:http://localhost:8081/sayhi?wsdl,咱們看瀏覽器返回結果:大數據

        說明咱們的服務發佈成功,能夠供外部調用了。this

下來咱們看外部系統如何調用這個服務。spa

在建立一個客戶端工程。而後打開cmd命令行工具,使用jdk自帶的客戶端代碼生成工具wsimport,生成客戶端代碼。生成方式以下:

我當前目錄在e盤,-s表示生成源碼即java文件,-p用來指定包結構。執行命令便可生成代碼了。

執行後個人E盤下生成狀況如圖:

咱們把java文件拷貝到客戶端工程中去。

編寫調用類ServiceClient:

public class ServiceClient {
    public static void main(String[] args) {
        HelloServiceService service = new HelloServiceService();

        HelloService service2 = service.getHelloServicePort();

        String result = service2.sayHi("Wrold");
        System.out.println(result);

    }
}

執行查看結果:

須要特別注意的是wsimport那個定義包結構的參數,必定要輸入正確。

相關文章
相關標籤/搜索