好程序員分享WebService的簡單使用,咱們在開發項目時,若是有需求須要從一個項目中去調用另外一個項目中的資源,一般能夠有四種方案:java
這些方式各自有其使用場景和特色,今天咱們主要說一下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;
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,你成功了。