1. 程式人生 > >使用JDK開發WebService-客戶端建立

使用JDK開發WebService-客戶端建立

一、序言

上篇,我已經寫了一個簡單的WebService伺服器。看起來貌似不錯,但我們真正的目的是想通過程式設計的方式來訪問伺服器,而不是通過eclipse帶的Web Service瀏覽器來訪問。伺服器我們是一行行程式碼敲出來的,客戶端同樣我們也可以一步步設計出來,但是相對繁瑣。JDK裡面有個工具wsimport.exe,可以幫我們生成客戶端程式碼,節省了很多時間。

二、使用JDK生成WebService客戶端

首先,我們需要再建立一個客戶端工程------jdkclient。建立好以後複製一下客戶端工程的src目錄路徑

執行命令提示符(win+r>>>cmd),先進入自己客戶端工程所在的碟符,在進入src目錄,dos下輸入cd 然後把複製好的src目錄路徑貼上到命令提示符中(dos下不能使用ctrl+v快捷鍵,在dos下右擊會出現貼上選項),進入到src下後,輸入wsimport,看看是否識別,如果不能識別命令,檢查下系統的環境變數是否配好。


生成客戶端的命令是wsimport -keep url       //url為wsdl路徑。

把伺服器執行起來,dos下輸入生成指令:wsimport -keep http://localhost:8080/service/HelloService?wsdl

注意三點:

    ·伺服器要處於啟動狀態

    ·-keep前後有空格

    ·?wsdl不要忘記

執行後,如出現下圖介面,說明已經自動生成客戶端程式碼了。eclipse客戶端工程上右擊,重新整理就可以看到生成的客戶端程式碼了。



使用JDK1.8+MyEclipes 生成的程式碼可能報錯。這是MyEclipse的一個bug,更換一個低版本的JDK就可以了

三、編寫客戶端呼叫方法

新建一個類,呼叫生成的getHelloServiceImplPort()方法,執行mian方法,檢視控制檯和伺服器的控制檯,看是否正確列印。

import com.gpj.service.HelloServiceImpl;
import com.gpj.service.HelloServiceImplService;

public class ClientTest {

	public static void main(String[] args) {
		HelloServiceImplService factory = new HelloServiceImplService();
		HelloServiceImpl helloWS = factory.getHelloServiceImplPort();
		
		String result = helloWS.sayHello("gpj");
		System.out.println("client "+result);
	}
}