好程序員分享WebService的簡單使用

好程序員分享WebService的簡單使用,咱們在開發項目時,若是有需求須要從一個項目中去調用另外一個項目中的資源,一般能夠有四種方案:java

  1. RESTful
  2. WebService
  3. RPC
  4. Socket

這些方式各自有其使用場景和特色,今天咱們主要說一下WebService這種方式。程序員

 

WebService也是一個web的應用程序,能夠使用XML的標準來描述、發佈、發現、協調這些應用程序,能夠用於分佈式開發。web

 

在開發WebService程序時,有一些基本概念必需要知道:分佈式

SOAP:簡單對象傳輸協議。SOAP使用XML消息調用遠程方法,這樣web services能夠經過HTTP協議的post和get方法與其餘遠程數據交互。函數

WSDL: WebService描述語言。WSDL就是用機器能閱讀的方式提供的一個正式描述文檔而基於XML的語言,用於描述WebService及其函數、參數和返回值。post

 

那麼,究竟如何去使用WebService來進行兩個項目數據的交互呢,接下來看一個簡單的例子。spa

首先,新建一個工程myServer,在工程裏新建一個Java類,而且開發一個基於WebService的服務,以下:.net

package com.wl.weather;server

 

import javax.jws.WebService;xml

import javax.xml.ws.Endpoint;

 

@WebService

public class WeatherServer {

 

    public String getWeather(String cityName){

        switch (cityName){

            case "北京":

                return "";

            case "武漢":

                return "";

            default:

                return "未知地點";

        }

    }

 

    public static void main(String[] args) {

        Endpoint.publish("http://192.168.52.56:9001/Service/Weather",new WeatherServer());

        System.out.println("發佈完畢");

    }

}

 

將工程中的main方法啓動。

 

而後再新建一個工程myClient去調用myServer中的服務。在myClient中新建包com.wl.day23.controller,而後打開終端窗口,在終端窗口中切換到myClient的工程目錄,而且輸入以下命令:

wsimport -s . -p com.wl.day23.controller -keep http://192.168.52.56:9001/Service/Weather?wsdl  

,再看一下myClient項目,就會發現多了好多個接口和類,不用管這些接口和類,在controller包裏新建一個類,而且寫下以下代碼:

package com.wl.day23.controller;

 

public class IndexController {

    public String list(){

        WeatherServer server = new WeatherServerService().getWeatherServerPort();

        String result = server.getWeather("武漢");

        System.out.println(result);

        return "/list";

    }

 

    public static void main(String[] args) {

        new IndexController().list();

    }

}

運行main方法,看看有沒有打印出數據,若是有顯示打印數據,OK,你成功了。

相關文章
相關標籤/搜索