1)使用XFire+Spring構建Web Service(一)——helloWorld篇
2)使用XFire+Spring構建Web Service(二)
講到了如何使用XFire+Spring構建WebService,并生成了對應的wsdl文件。針對這兩篇文章,收到很多留言和讀者來信,大部分都是針對拿到wsdl后,如何根據wsdl生成對應的Java代碼,并進行測試。
基于在開發過程中,很多時候都是拿到另一方的wsdl,需要與該方進行聯調測試,所以在本文中,我大概的整理了一下,希望能幫讀者解決一些問題。
第一章. 準備wsdl
這陣子正好在寫幾個wsdl,就拿其中一個來做實例吧。
首先貼下接口協議文檔:
1.1 數據類型
AccessCodeContext的數據類型:
域名 |
類型 |
Is Null |
說明 |
accessCode |
Varchar(32) |
N |
接入號 |
vccId |
Varchar(20) |
Y |
集團標識 |
routeStrategy |
Integer 默認1 |
N |
路由策略: 1.轉接分機/組; 2.由CTI指定路由。 |
telephoneNumber |
Varchar(32) |
Y |
分機/分機組(當路由策略為1時,該項不能為空) |
serviceId |
Varchar(20) |
Y |
服務(當路由策略為2時,該項不能為空) |
1.2查詢接入號碼總數接口
接口定義
接口名稱 |
查詢接入號碼總數接口 |
接口描述 |
查詢接入號碼總數 1)accessCodeContext中的routeStrategy為0時,不過濾該項. |
接口協議 |
webservice方式,使用utf-8編碼 |
方法名 |
getTotalItem |
鏈接地址 |
|
接口提供者 |
|
主要使用者 |
ap |
wsdl文件 |
2) 輸入參數:
名稱 |
說明 |
數據類型 |
is null |
accessCodeContext |
接入號碼屬性(當該對象為null時,查詢所有的接入號碼信息,若某項為空時,該項不參與查詢) |
AccessCodeContext |
n |
3) 返回參數
發生其他異常時,以ServiceException異常的方式拋出。
名稱 |
說明 |
數據類型 |
is null |
totalItem |
總數 |
Integer |
Y |
1.3查詢接入號碼列表接口
1)接口定義
接口名稱 |
查詢接入號碼列表接口 |
接口描述 |
查詢接入號碼列表 1)accessCodeContext中的routeStrategy為0時,不過濾該項. |
接口協議 |
webservice方式,使用utf-8編碼 |
方法名 |
list |
鏈接地址 |
|
接口提供者 |
|
主要使用者 |
ap |
wsdl文件 |
2) 輸入參數:
名稱 |
說明 |
數據類型 |
is null |
startItem |
起始查詢行號 |
Varchar |
Y |
maxItem |
最大查詢行數 |
Varchar |
Y |
accessCodeContext |
接入號碼屬性(當該對象為null時,查詢所有的接入號碼信息,若某項為空時,該項不參與查詢) |
AccessCodeContext |
n |
3) 返回參數
發生其他異常時,以ServiceException異常的方式拋出。
名稱 |
說明 |
數據類型 |
is null |
accessCodeContextArray |
接入號碼信息數組 |
AccessCodeContext[] |
Y |
1.4 查詢單個接入號碼接口
1)接口定義
接口名稱 |
查詢接入號碼接口 |
接口描述 |
查詢接入號碼信息 |
接口協議 |
webservice方式,使用utf-8編碼 |
方法名 |
find |
鏈接地址 |
|
接口提供者 |
|
主要使用者 |
ap |
wsdl文件 |
2) 輸入參數:
名稱 |
說明 |
數據類型 |
is null |
accessCode |
接入號碼 |
varchar(32) |
n |
3) 返回參數
若接入號碼信息不存在或發生其他異常時,以ServiceException異常的方式拋出。
名稱 |
說明 |
數據類型 |
is null |
accessCodeContext |
接入號碼屬性 |
AccessCodeContext |
N |
1.5 增加接入號碼接口
1) 接口定義
接口名稱 |
增加接入號碼接口 |
接口描述 |
增加接入號碼, 說明: 1) 接入號碼不能重復; 2) 集團信息必須存在。 |
接口協議 |
webservice方式,使用utf-8編碼 |
方法名 |
save |
鏈接地址 |
|
接口提供者 |
|
主要使用者 |
ap |
wsdl文件 |
2) 輸入參數:
名稱 |
說明 |
數據類型 |
is null |
accessCodeContext |
接入號碼信息 |
AccessCodeContext |
n |
3) 返回參數
失敗時以異常的方式拋出ServiceException。
1.6 修改接入號碼接口
1) 接口定義
接口名稱 |
修改接入號碼接口 |
接口描述 |
修改接入號碼。 說明: 1) 接入號碼必須存在; 2) 集團信息必須存在。 |
接口協議 |
webservice方式,使用utf-8編碼 |
方法名 |
update |
鏈接地址 |
|
接口提供者 |
|
主要使用者 |
ap |
wsdl文件 |
2) 輸入參數
名稱 |
說明 |
數據類型 |
is null |
accessCodeContext |
接入號碼信息 |
AccessCodeContext |
n |
3) 返回參數
失敗時以異常的方式拋出ServiceException。
1.7 刪除接入號碼接口
1)接口定義
接口名稱 |
刪除接入號碼接口 |
接口描述 |
刪除接入號碼: 1)接入號碼必須存在。 |
接口協議 |
webservice方式,使用utf-8編碼 |
方法名 |
delete |
鏈接地址 |
|
接口提供者 |
|
主要使用者 |
ap |
wsdl文件 |
2) 輸入參數:
名稱 |
說明 |
數據類型 |
is null |
accessCode |
接入號碼 |
Varchar(32) |
n |
3) 返回參數
失敗時以異常的方式拋出ServiceException。第二章 實例wsdl
相關的wsdl有5個,其中兩個是各個接口共用的,定義了共用的異常和數據對象之類的東西。
1)acd_common_faults.wsdl:定義了共用的異常ServiceException。
內容如下:














2)acd_common_types.xsd:定義了共用的數據類型
3)acd_accessCode_types.xsd:定義了接入碼的數據對象































































































































































































































































3.1 建立工程環境
在MyEclipse中建立一個工程,例如建立一個名為wsdl2java的WEB工程。需要添加到WEB-INF/lib目錄下的包如下所示:
將wsdl目錄拷貝到工程目錄,例如src/wsdl目錄下。
3. 2. 根據wsdl文件生成對應的java類
選擇新建的工程后,點擊右鍵,選擇“Run As”->“Run”,如下圖所示:
彈出窗口如下圖所示:
在上圖中,左邊選擇“Java Application”后,點擊左上角的新增“”按鈕new configuration,頁面如下圖所示:
在上圖中,將“Include libraries when searching for a main class” 勾上,而后點擊“Main class”右邊的“Search”按鈕,彈出窗口如下圖所示:
在上圖中輸入WSDL2Java后,查找到axis這個jar包中對應類,點擊“OK”按鈕,此時主窗口如下圖所示:
在上圖中點擊“Arguments”頁簽,Arguments里把要生成的web service URI或wsdl文件寫進去,最后點run。在下圖中輸入的是wsdl文件的路徑: src/wsdl/acd_accessCode_interface.wsdl、src/wsdl/acd_accessCode_service.wsdl:

生成的代碼的結構如下圖所示:

第四章 更簡便的生成Java代碼的方法
本章講述的方法是筆者采用的方法,也是筆者所推薦的,原理與前一章相同,但是要簡便一些。
4.1 準備jar包
將上一章提到的6個jar包放到某個目錄,例如E:\amigo\project\ws_lib
4.2 拷貝wsdl以及相關文件
將上面章節5個wsdl文件拷貝到某個目錄,例如:E:\interface
4.3 編寫一個批處理文件
編寫一個根據wsdl生成Java代碼的批處理文件,以后都可以拿來用。在wsdl文件所在目錄創建批處理文件createPackageByWsdl.bat,編寫該文件內容:










編寫完成后,運行該批處理文件,可在同目錄下生成指定的wsdl對應的Java類。生成的文件與上一章的文件一樣。
注意:第一行指定的是jar所在的目錄,讀者需要進行修改。