在jdk1.6实现了webservice,可以通过bin目录下的wsimport命令根据wsdl生成客户端java文件。
wsdl地址 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
直接使用wsimport 通过该地址生存java 文件时,会报错。因为该wsdl里面包含 ref = "s:schema" 这样的引用。而jaxb是不支持的。所以手动将该wsdl下载下来做下修改,然后再生成java文件。
修改方法为:
将所有的<s:element ref="s:schema"/> 改成 <s:any minOccurs="2" maxOccurs="2"/>
然后再通过wsimport生成java文件。 如果还是报错,就将wsdl文件里面的<wsdl:documentation 节点全部删除。应该就没问题了。
生成java文件
C:\Users\Administrator\workspace\javaproject\src>wsimport -keep C:\weather.wsdl
package com.zf.weatherservice;
import com.zf.warther_ws.ArrayOfString;
import com.zf.warther_ws.WeatherWebService;
import com.zf.warther_ws.WeatherWebServiceSoap;
public class Test03 {
public static void main(String[] args) {
WeatherWebService wws = new WeatherWebService();
WeatherWebServiceSoap wwsp = wws.getWeatherWebServiceSoap();
ArrayOfString aos = wwsp.getWeatherbyCityName("北京");
for (String s : aos.getString()) {
System.out.println(s);
}
}
}