深圳Java培訓:WebService的簡單使用

深圳Java培訓:WebService的簡單使用

我們在開發項目時,如果有需求需要從一個項目中去調用另一個項目中的資源,通常可以有四種方案:
1
1.RESTful
2.WebService
3.RPC
4.Socket
這些方式各自有其使用場景和特點,今天我們主要說一下WebService這種方式。
在這裏插入圖片描述
WebService也是一個web的應用程序,可以使用XML的標準來描述、發佈、發現、協調這些應用程序,可以用於分佈式開發。

在開發WebService程序時,有一些基本概念必須要知道:
1
SOAP:簡單對象傳輸協議。SOAP使用XML消息調用遠程方法,這樣web services可以通過HTTP協議的post和get方法與其他遠程數據交互。
WSDL: WebService描述語言。WSDL就是用機器能閱讀的方式提供的一個正式描述文檔而基於XML的語言,用於描述WebService及其函數、參數和返回值。

那麼,究竟如何去使用WebService來進行兩個項目數據的交互呢,接下來看一個簡單的例子。
首先,新建一個工程myServer,在工程裏新建一個Java類,並且開發一個基於WebService的服務,如下:
1
2
package com.wl.weather;

import javax.jws.WebService;
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("發佈完畢");

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
}

將工程中的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();

}
1
2
3
}
運行main方法,看看有沒有打印出數據,如果有顯示打印數據,OK,你成功了。

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