1. 程式人生 > >WebService之jax-ws入門

WebService之jax-ws入門

這是一個入門程式,只求通俗易懂,不求深入。

1、建立一個JAVA專案,並建立一個WeatherService的介面

package com.ckinghan.webService.jaxws;

public interface WeatherService {

    /**
     * 根據城市獲取天氣資訊
     * @param city
     * @return
     */
    public String getWeatherInfo(String city);
}

2、建立WeatherService介面的實現類

package com.ckinghan.webService.jaxws.impl;

import
javax.jws.WebService; import com.ckinghan.webService.jaxws.WeatherService; /** * 注意,這裡的@WebService必須加,是要告訴系統這是個WebService的程式 */ @WebService public class WeatherServiceImpl implements WeatherService{ /** * 實現介面中的方法 */ @Override public String getWeatherInfo(String city) { System.out.println("接收到來自客戶端的請求資料:"
+city); return "這是個晴天"; } }

3、建立CreateServiceTest測試類,將WebService程式進行釋出,並執行。

package com.ckinghan.webService.jaxws.test;

import javax.xml.ws.Endpoint;

import com.ckinghan.webService.jaxws.impl.WeatherServiceImpl;

public class CreateServiceTest {

    /**
     * 測試釋出
     */
    public
static void main(String[] args) { //使用Endpoint進行釋出,引數一:訪問地址。引數二:釋出的服務 Endpoint.publish("http://localhost:12306/weather", new WeatherServiceImpl()); } }

4、執行後,可以將釋出的地址複製一下貼上到瀏覽器上,看是否釋出成功,如果釋出成功,會出現如下介面:

這裡寫圖片描述

這裡寫圖片描述

6、將Client客戶端程式碼進行匯出。操作方式

  • 在C盤建立一個資料夾:webService
  • 開啟CMD視窗,輸入: cd c:/ 進入C盤根目錄
  • 輸入cd webService 進入webService資料夾
  • 常見出錯問題:連線地址寫錯,少加了?wsdl引數
  • 環境變數配置不正確,如果可以使用javac -version命令正確輸出,就可以正常匯出資料。

這裡寫圖片描述

7、將生成 的程式碼包括資料夾複製到 新建立的一個JAVA專案(webServieClient)中的src目錄下。複製過後如下:

這裡寫圖片描述

8、建立測試類ClientTest,並執行,檢視效果:

package com.ckinghan.webservice.jaxws.impl;

public class ClientTest {

    /**
     * 測試WebService是否可以正常訪問
     */
    public static void main(String[] args) {
        //建立WebServer服務釋出的物件
        WeatherServiceImplService weatherServiceImplService = new WeatherServiceImplService();
        //通過WebServer的物件獲取Port,引數是wsdl檔案中指定的類
        WeatherServiceImpl port = weatherServiceImplService.getPort(WeatherServiceImpl.class);
        //遠端呼叫WebService伺服器的介面,獲取資料
        String weatherInfo = port.getWeatherInfo("河南");
        //列印獲取 的資料
        System.out.println("服務端回覆:"+weatherInfo);
    }

}

9、執行後效果如下:

這裡寫圖片描述

這裡寫圖片描述

10、測試完成。。。