1. 程式人生 > >利用wsdl2java工具生成webservice的客戶端程式碼,編碼問題

利用wsdl2java工具生成webservice的客戶端程式碼,編碼問題

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