利用wsdl2java工具生成webservice的客戶端程式碼,編碼問題
阿新 • • 發佈:2019-01-29
1、JDK環境
2、下載apache-cxf釋出包,目前最新版本為3.1.7,解壓釋出包,設定CXF_HOME,並新增%CXF_HOME %/bin到path環境變數。
3、CMD命令列輸入wsdl2java -help,有正常提示說明環境已經正確配置。
二、命令使用
此命令主要是生成webservice的客戶端程式碼,服務端可以是自行開發的服務,也可以是需要對接的服務介面,最簡單的命令如下:
wsdl2java wsdlurl
其中wsdlurl為服務釋出的訪問地址,未寫引數預設生成的是客戶端的程式碼,其中用得最多的是-encoding 引數,是指定Java程式碼的編碼格式,例如:
wsdl2java -encoding wsdlurl
其他詳細的引數及說明可以用wsdl2java -help或wsdl2java -h獲取,根據實際的需求設定相應的引數即可。
三、簡單案例
常用介面:IP地址來源搜尋 WEB 服務
1、生成客戶端程式碼
WSDL地址:
http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl
使用wsdl2java工具將客戶端程式碼直接生成在eclipse的工程裡,eclipse工程地址為:E:\workspace\webservice,命令如下:
wsdl2java -encoding utf-8 -d E:/workspace/webservice/src http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl
- 1
- 1
-encoding表示生成的Java檔案編碼格式為utf8,-d表示程式碼生成路徑為E:/workspace/webservice/src。
執行完畢,沒有報任何錯誤,說明執行成功
可以看到在eclipse下面已經生成了相應的程式碼:
2、客戶端程式碼呼叫服務
寫一個小demo,呼叫釋出的IP查詢服務
package com.hy.ipservice;
import java.util.Iterator;
import java.util.List;
import cn.com.webxml.ArrayOfString;
import cn.com.webxml.IpAddressSearchWebService;
import cn.com.webxml.IpAddressSearchWebServiceSoap;
public class IPServiceDemo {
public static void main(String[] args) {
IpAddressSearchWebService service2 = new IpAddressSearchWebService();
IpAddressSearchWebServiceSoap serviceSoap = service2.getIpAddressSearchWebServiceSoap();
ArrayOfString cityByip = serviceSoap.getCountryCityByIp("58.60.251.125");
List<String> ips = cityByip.getString();
for (Iterator<String> ite = ips.iterator(); ite.hasNext();) {
String ip = (String) ite.next();
System.out.println(ip);
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22