先放上接口調(diào)用地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
- 新建一個(gè)普通的java項(xiàng)目
get_weather_demo2
項(xiàng)目最終結(jié)構(gòu)如下圖:
最終目錄結(jié)構(gòu)
- 右鍵項(xiàng)目,選擇properties,找到并復(fù)制項(xiàng)目的路徑犬金,打開(kāi)cmd命令行滴某,按照之前寫(xiě)的一篇文章《通過(guò)網(wǎng)絡(luò)編程遠(yuǎn)程調(diào)用service接口的demo》中的方式穗酥,將目錄切到本項(xiàng)目的src文件夾下蚁飒,輸入
wsimport -keep -p demo.cyj.service -verbose http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
這時(shí)卻報(bào)錯(cuò)了,報(bào)錯(cuò)如下圖:
報(bào)錯(cuò)信息
- 經(jīng)過(guò)一番百度上的搜索和尋找,終于大概知道了錯(cuò)誤原因兢卵,解決方案:
引用自love小仙的博客。
按照解決方案中所說(shuō)绪颖,瀏覽器地址改為http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl秽荤,將網(wǎng)頁(yè)上的字符全部復(fù)制下來(lái)放到本地的一個(gè)文本文檔中甜奄,將文中出現(xiàn)過(guò)的兩處
<s:element ref="s:schema" /> <s:any />
全部替換為<s:any minOccurs="2" maxOccurs="2" />
然后文件保存為weather.wsdl
。 - 打開(kāi)cmd命令行窃款,進(jìn)入本項(xiàng)目的src文件夾下课兄,按照格式:
wsimport -s . yourpath/weather.wsdl
輸入命令行,比如我的存放地址:
E:\eclipseOxygenWorkspace\get_weather_demo\src\demo\cyj\weather_test\weather.wsdl
我的命令行就為
wsimport -s . E:\eclipseOxygenWorkspace\get_weather_demo\src\demo\cyj\weather_test\weather.wsdl
成功的命令行
這個(gè)時(shí)候就可以看到晨继,多了一個(gè)包烟阐,里面有很多java文件。
- 新建一個(gè)測(cè)試類(lèi)
WeatherTest.java
:
package demo.cyj.test;
import cn.com.webxml.ArrayOfString;
import cn.com.webxml.WeatherWebService;
import cn.com.webxml.WeatherWebServiceSoap;
public class WeatherTest {
public static void main(String[] args) {
WeatherWebService factory = new WeatherWebService();
WeatherWebServiceSoap weatherWebServiceSoap = factory.getWeatherWebServiceSoap();
ArrayOfString strArray = null;
strArray = weatherWebServiceSoap.getWeatherbyCityName("成都");
System.out.println(strArray.getString());
}
}
跑起來(lái)紊扬,可以看到控制臺(tái)打友亚选:
控制臺(tái)信息