MyEclispe基於JAX-WS的WebService服務端客戶端簡單實現示例

    最近項目中須要用到WebService向其餘開發人員提供接口,以前對WebService只是簡單瞭解,沒有具體實現過,在網上參考了許多示例,感受不是特別詳細,出了很多問題,所以感受WebService實現起來挺麻煩的。恰好這兩天不是太忙,抽空又研究了一下WebService服務端與客戶端的實現,如今總結一下,但願對初學者有所幫助。 java

    首先說明一下開發環境:Windows 7 Ultimate + JDK1.6.25 + Tomcat 6.0.18 + MyEclipse 6.5 Enterprise。 git

具體操做步驟: 測試

1.新建工程ProjectWS,如圖: ui

2.新建包:com.project.ws.client;com.project.ws.server;com.project.wsutil.iface;com.project.wsutil.imp;如圖: spa

3.在iface包中建立接口IServer,代碼以下: code

package com.project.wsutil.iface;

public interface IServer {

	public String getMD5ForString(String str);//獲取字符串MD5值
	public String caculateForInt(int iNum1,int iNum2,int iType);//兩個整型數字運算
	
}

4.在imp包中建立類Server並實現接口IServer,代碼以下: server

package com.project.wsutil.imp;

import java.security.MessageDigest;

import com.project.wsutil.iface.IServer;

public class Server implements IServer {

	/**
	 * 兩個整型數的四則運算
	 */
	public String caculateForInt(int num1, int num2, int type) {
		int result = 0;
		try{
			switch(type){
			case 1:
				result = num1 + num2;//加
				break;
			case 2:
				result = num1 - num2;//減
				break;
			case 3:
				result = num1 * num2;//乘
				break;
			case 4:
				if(num2==0){//除
					return "除數不能爲0!";
				}else{
					result = num1 / num2;
					break;
				}
			default:
				return "請正確指定運算類型!";
		    }
		}catch(Exception e){
			return "運算髮生異常:"+e.getMessage();
		}
		return String.valueOf(result);
	}

	/**
	 * 獲取字符串MD5值
	 */
	public String getMD5ForString(String str) {
		char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
		try {
			byte[] strByte = str.getBytes();
			MessageDigest digest = MessageDigest.getInstance("MD5");
			digest.update(strByte);
			byte[] digestByteArray = digest.digest();
			int length = digestByteArray.length;
			char array[] = new char[length * 2];
			int index = 0;
			for (int i = 0; i < length; i++) {
				byte _byte = digestByteArray[i];
				array[index++] = hexDigits[_byte >>> 4 & 0xf];
				array[index++] = hexDigits[_byte & 0xf];
			}
			return new String(array);
		} catch (Exception e) {
			return "獲取字符串【"+str+"】MD5值異常:"+e.getMessage();
		}
	}

}

 

5.右鍵src,選擇new — Other,而後選擇WebService,如圖: 接口

6.單擊下一步,如圖: ip

7.指定接口實現類com.project.wsutil.Server.java,如圖: md5

8.右鍵工程,選擇Properties,左側選擇「Java Build Path」,而後選擇「Libraries」選項卡,如圖:

 

點擊「Add Library」按鈕,打開如圖對話框,

 

選擇「MyEclipse Libraries」,單擊「Next」,如圖,勾選JAX-WS兩個選項,而後單擊Finish,最後單擊「OK」關閉對話框。

9.如圖,展開項目,找到WEB-INF目錄下的WSDL文件並打開:

10.將工程部署到Tomcat下,並啓動Tomcat,訪問地址:http://localhost:8080/ProjectWS/WSServerPort?wsdl,出現以下圖界面,說明建立成功(此處爲什麼訪問WSServerPort而不是WSServerService有點疑惑,還望知道的朋友給點提示)。

11.右鍵Src,選擇new — Other,而後選擇WebService Client,如圖:

12.單擊下一步,如圖,選擇JAX-WS:

13.單擊「Next」,如圖,拷貝WSDL訪問路徑,並制定所生成客戶端的包路徑:

14.單擊「Next」按鈕,如圖(注:若是出現警告或錯誤提示等,請忽略),最後單擊Finish。

15.建立測試類com.project.test.Test.java,代碼以下:

package com.project.test;

import com.project.ws.client.WSServerService;

public class Test {

	public static void main(String[] args){
		WSServerService service = new WSServerService();
		String md5 = service.getWSServerPort().getMD5ForString("WebService");
		String result = service.getWSServerPort().caculateForInt(25, 3, 3);
		System.out.println("【WebService】MD5值爲:"+md5);
		System.out.println("計算結果:25 × 3 = "+result);
	}
}

16.最後運行Test.java,控制檯輸出以下信息:

 

 

PS:因爲本人水平有限,還望各位多提出寶貴意見。

相關文章
相關標籤/搜索