客户端:以调用天气预报的webservice为例子:
加入相关包:
activation.jar
axis-ant.jar
axis.jar
commons-discovery-0.2.jar
commons-logging-1.0.4.jar
jaxrpc.jar
log4j-1.2.8.jar
mail.jar
saaj.jar
wsdl4j-1.5.1.jar
访问找到的wsdl地址,将内容复制到文件以wsdl为后缀(地址忘记了): WeatherWebService.wsdl,将该文件放在应用目录下面的wsdl文件加下:
<?xml version="1.0" encoding="utf-8"?> <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://WebXml.com.cn/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://WebXml.com.cn/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><a href="http://www.webxml.com.cn/" target="_blank">WebXml.com.cn</a> <strong>天气预报 Web 服务,</strong>数据来源于<strong>中国气象局</strong> <a href="http://www.cma.gov.cn/" target="_blank">http://www.cma.gov.cn/</a> ,数据每2.5小时左右自动更新一次,准确可靠。包括 340 多个中国主要城市和 60 多个国外主要城市三日内的天气预报数据。</br>此天气预报Web Services请不要用于任何商业目的,若有需要请<a href="http://www.webxml.com.cn/zh_cn/contact_us.aspx" target="_blank">联系我们</a>,欢迎技术交流。 QQ:8409035<br /><strong>使用本站 WEB 服务请注明或链接本站:http://www.webxml.com.cn/ 感谢大家的支持</strong>!<br /><span style="color:#999999;">通知:天气预报 WEB 服务如原来使用地址 http://www.onhap.com/WebServices/WeatherWebService.asmx 的,请改成现在使用的服务地址 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx ,重新引用即可。</span><br /><br />&nbsp; </wsdl:documentation> <wsdl:types> <s:schema elementFormDefault="qualified" targetNamespace="http://WebXml.com.cn/"> <s:element name="getSupportCity"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="byProvinceName" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="getSupportCityResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="getSupportCityResult" type="tns:ArrayOfString" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="ArrayOfString"> <s:sequence> <s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" /> </s:sequence> </s:complexType> <s:element name="getSupportProvince"> <s:complexType /> </s:element> <s:element name="getSupportProvinceResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="getSupportProvinceResult" type="tns:ArrayOfString" /> </s:sequence> </s:complexType> </s:element> <s:element name="getSupportDataSet"> <s:complexType /> </s:element> <s:element name="getSupportDataSetResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="getSupportDataSetResult"> <s:complexType> <s:sequence> <s:element ref="s:schema" /> <s:any /> </s:sequence> </s:complexType> </s:element> </s:sequence> </s:complexType> </s:element> <s:element name="getWeatherbyCityName"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="theCityName" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="getWeatherbyCityNameResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="getWeatherbyCityNameResult" type="tns:ArrayOfString" /> </s:sequence> </s:complexType> </s:element> <s:element name="getWeatherbyCityNamePro"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="theCityName" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="theUserID" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="getWeatherbyCityNameProResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="getWeatherbyCityNameProResult" type="tns:ArrayOfString" /> </s:sequence> </s:complexType> </s:element> <s:element name="ArrayOfString" nillable="true" type="tns:ArrayOfString" /> <s:element name="DataSet" nillable="true"> <s:complexType> <s:sequence> <s:element ref="s:schema" /> <s:any /> </s:sequence> </s:complexType> </s:element> </s:schema> </wsdl:types> <wsdl:message name="getSupportCitySoapIn"> <wsdl:part name="parameters" element="tns:getSupportCity" /> </wsdl:message> <wsdl:message name="getSupportCitySoapOut"> <wsdl:part name="parameters" element="tns:getSupportCityResponse" /> </wsdl:message> <wsdl:message name="getSupportProvinceSoapIn"> <wsdl:part name="parameters" element="tns:getSupportProvince" /> </wsdl:message> <wsdl:message name="getSupportProvinceSoapOut"> <wsdl:part name="parameters" element="tns:getSupportProvinceResponse" /> </wsdl:message> <wsdl:message name="getSupportDataSetSoapIn"> <wsdl:part name="parameters" element="tns:getSupportDataSet" /> </wsdl:message> <wsdl:message name="getSupportDataSetSoapOut"> <wsdl:part name="parameters" element="tns:getSupportDataSetResponse" /> </wsdl:message> <wsdl:message name="getWeatherbyCityNameSoapIn"> <wsdl:part name="parameters" element="tns:getWeatherbyCityName" /> </wsdl:message> <wsdl:message name="getWeatherbyCityNameSoapOut"> <wsdl:part name="parameters" element="tns:getWeatherbyCityNameResponse" /> </wsdl:message> <wsdl:message name="getWeatherbyCityNameProSoapIn"> <wsdl:part name="parameters" element="tns:getWeatherbyCityNamePro" /> </wsdl:message> <wsdl:message name="getWeatherbyCityNameProSoapOut"> <wsdl:part name="parameters" element="tns:getWeatherbyCityNameProResponse" /> </wsdl:message> <wsdl:message name="getSupportCityHttpGetIn"> <wsdl:part name="byProvinceName" type="s:string" /> </wsdl:message> <wsdl:message name="getSupportCityHttpGetOut"> <wsdl:part name="Body" element="tns:ArrayOfString" /> </wsdl:message> <wsdl:message name="getSupportProvinceHttpGetIn" /> <wsdl:message name="getSupportProvinceHttpGetOut"> <wsdl:part name="Body" element="tns:ArrayOfString" /> </wsdl:message> <wsdl:message name="getSupportDataSetHttpGetIn" /> <wsdl:message name="getSupportDataSetHttpGetOut"> <wsdl:part name="Body" element="tns:DataSet" /> </wsdl:message> <wsdl:message name="getWeatherbyCityNameHttpGetIn"> <wsdl:part name="theCityName" type="s:string" /> </wsdl:message> <wsdl:message name="getWeatherbyCityNameHttpGetOut"> <wsdl:part name="Body" element="tns:ArrayOfString" /> </wsdl:message> <wsdl:message name="getWeatherbyCityNameProHttpGetIn"> <wsdl:part name="theCityName" type="s:string" /> <wsdl:part name="theUserID" type="s:string" /> </wsdl:message> <wsdl:message name="getWeatherbyCityNameProHttpGetOut"> <wsdl:part name="Body" element="tns:ArrayOfString" /> </wsdl:message> <wsdl:message name="getSupportCityHttpPostIn"> <wsdl:part name="byProvinceName" type="s:string" /> </wsdl:message> <wsdl:message name="getSupportCityHttpPostOut"> <wsdl:part name="Body" element="tns:ArrayOfString" /> </wsdl:message> <wsdl:message name="getSupportProvinceHttpPostIn" /> <wsdl:message name="getSupportProvinceHttpPostOut"> <wsdl:part name="Body" element="tns:ArrayOfString" /> </wsdl:message> <wsdl:message name="getSupportDataSetHttpPostIn" /> <wsdl:message name="getSupportDataSetHttpPostOut"> <wsdl:part name="Body" element="tns:DataSet" /> </wsdl:message> <wsdl:message name="getWeatherbyCityNameHttpPostIn"> <wsdl:part name="theCityName" type="s:string" /> </wsdl:message> <wsdl:message name="getWeatherbyCityNameHttpPostOut"> <wsdl:part name="Body" element="tns:ArrayOfString" /> </wsdl:message> <wsdl:message name="getWeatherbyCityNameProHttpPostIn"> <wsdl:part name="theCityName" type="s:string" /> <wsdl:part name="theUserID" type="s:string" /> </wsdl:message> <wsdl:message name="getWeatherbyCityNameProHttpPostOut"> <wsdl:part name="Body" element="tns:ArrayOfString" /> </wsdl:message> <wsdl:portType name="WeatherWebServiceSoap"> <wsdl:operation name="getSupportCity"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><br /><h3>查询本天气预报Web Services支持的国内外城市或地区信息</h3><p>输入参数:byProvinceName = 指定的洲或国内的省份,若为ALL或空则表示返回全部城市;返回数据:一个一维字符串数组 String(),结构为:城市名称(城市代码)。</p><br /></wsdl:documentation> <wsdl:input message="tns:getSupportCitySoapIn" /> <wsdl:output message="tns:getSupportCitySoapOut" /> </wsdl:operation> <wsdl:operation name="getSupportProvince"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><br /><h3>获得本天气预报Web Services支持的洲、国内外省份和城市信息</h3><p>输入参数:无; 返回数据:一个一维字符串数组 String(),内容为洲或国内省份的名称。</p><br /></wsdl:documentation> <wsdl:input message="tns:getSupportProvinceSoapIn" /> <wsdl:output message="tns:getSupportProvinceSoapOut" /> </wsdl:operation> <wsdl:operation name="getSupportDataSet"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><br><h3>获得本天气预报Web Services支持的洲、国内外省份和城市信息</h3><p>输入参数:无;返回:DataSet 。DataSet.Tables(0) 为支持的洲和国内省份数据,DataSet.Tables(1) 为支持的国内外城市或地区数据。DataSet.Tables(0).Rows(i).Item("ID") 主键对应 DataSet.Tables(1).Rows(i).Item("ZoneID") 外键。<br />Tables(0):ID = ID主键,Zone = 支持的洲、省份;Tables(1):ID 主键,ZoneID = 对应Tables(0)ID的外键,Area = 城市或地区,AreaCode = 城市或地区代码。</p><br /> </wsdl:documentation> <wsdl:input message="tns:getSupportDataSetSoapIn" /> <wsdl:output message="tns:getSupportDataSetSoapOut" /> </wsdl:operation> <wsdl:operation name="getWeatherbyCityName"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><br><h3>根据城市或地区名称查询获得未来三天内天气情况、现在的天气实况、天气和生活指数</h3><p>调用方法如下:输入参数:theCityName = 城市中文名称(国外城市可用英文)或城市代码(不输入默认为上海市),如:上海 或 58367,如有城市名称重复请使用城市代码查询(可通过 getSupportCity 或 getSupportDataSet 获得);返回数据: 一个一维数组 String(22),共有23个元素。<br />String(0) 到 String(4):省份,城市,城市代码,城市图片名称,最后更新时间。String(5) 到 String(11):当天的 气温,概况,风向和风力,天气趋势开始图片名称(以下称:图标一),天气趋势结束图片名称(以下称:图标二),现在的天气实况,天气和生活指数。String(12) 到 String(16):第二天的 气温,概况,风向和风力,图标一,图标二。String(17) 到 String(21):第三天的 气温,概况,风向和风力,图标一,图标二。String(22) 被查询的城市或地区的介绍 <br /><a href="http://www.webxml.com.cn/images/weather.zip">下载天气图标<img src="http://www.webxml.com.cn/images/download_w.gif" border="0" align="absbottom" /></a>(包含大、中、小尺寸) <a href="http://www.webxml.com.cn/zh_cn/weather_icon.aspx" target="_blank">天气图例说明</a> <a href="http://www.webxml.com.cn/files/weather_eg.zip">调用此天气预报Web Services实例下载</a> (VB ASP.net 2.0)</p><br /> </wsdl:documentation> <wsdl:input message="tns:getWeatherbyCityNameSoapIn" /> <wsdl:output message="tns:getWeatherbyCityNameSoapOut" /> </wsdl:operation> <wsdl:operation name="getWeatherbyCityNamePro"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><br><h3>根据城市或地区名称查询获得未来三天内天气情况、现在的天气实况、天气和生活指数(For商业用户)</h3><p>调用方法同 getWeatherbyCityName,输入参数:theUserID = 商业用户ID</p><br /> </wsdl:documentation> <wsdl:input message="tns:getWeatherbyCityNameProSoapIn" /> <wsdl:output message="tns:getWeatherbyCityNameProSoapOut" /> </wsdl:operation> </wsdl:portType> <wsdl:portType name="WeatherWebServiceHttpGet"> <wsdl:operation name="getSupportCity"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><br /><h3>查询本天气预报Web Services支持的国内外城市或地区信息</h3><p>输入参数:byProvinceName = 指定的洲或国内的省份,若为ALL或空则表示返回全部城市;返回数据:一个一维字符串数组 String(),结构为:城市名称(城市代码)。</p><br /></wsdl:documentation> <wsdl:input message="tns:getSupportCityHttpGetIn" /> <wsdl:output message="tns:getSupportCityHttpGetOut" /> </wsdl:operation> <wsdl:operation name="getSupportProvince"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><br /><h3>获得本天气预报Web Services支持的洲、国内外省份和城市信息</h3><p>输入参数:无; 返回数据:一个一维字符串数组 String(),内容为洲或国内省份的名称。</p><br /></wsdl:documentation> <wsdl:input message="tns:getSupportProvinceHttpGetIn" /> <wsdl:output message="tns:getSupportProvinceHttpGetOut" /> </wsdl:operation> <wsdl:operation name="getSupportDataSet"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><br><h3>获得本天气预报Web Services支持的洲、国内外省份和城市信息</h3><p>输入参数:无;返回:DataSet 。DataSet.Tables(0) 为支持的洲和国内省份数据,DataSet.Tables(1) 为支持的国内外城市或地区数据。DataSet.Tables(0).Rows(i).Item("ID") 主键对应 DataSet.Tables(1).Rows(i).Item("ZoneID") 外键。<br />Tables(0):ID = ID主键,Zone = 支持的洲、省份;Tables(1):ID 主键,ZoneID = 对应Tables(0)ID的外键,Area = 城市或地区,AreaCode = 城市或地区代码。</p><br /> </wsdl:documentation> <wsdl:input message="tns:getSupportDataSetHttpGetIn" /> <wsdl:output message="tns:getSupportDataSetHttpGetOut" /> </wsdl:operation> <wsdl:operation name="getWeatherbyCityName"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><br><h3>根据城市或地区名称查询获得未来三天内天气情况、现在的天气实况、天气和生活指数</h3><p>调用方法如下:输入参数:theCityName = 城市中文名称(国外城市可用英文)或城市代码(不输入默认为上海市),如:上海 或 58367,如有城市名称重复请使用城市代码查询(可通过 getSupportCity 或 getSupportDataSet 获得);返回数据: 一个一维数组 String(22),共有23个元素。<br />String(0) 到 String(4):省份,城市,城市代码,城市图片名称,最后更新时间。String(5) 到 String(11):当天的 气温,概况,风向和风力,天气趋势开始图片名称(以下称:图标一),天气趋势结束图片名称(以下称:图标二),现在的天气实况,天气和生活指数。String(12) 到 String(16):第二天的 气温,概况,风向和风力,图标一,图标二。String(17) 到 String(21):第三天的 气温,概况,风向和风力,图标一,图标二。String(22) 被查询的城市或地区的介绍 <br /><a href="http://www.webxml.com.cn/images/weather.zip">下载天气图标<img src="http://www.webxml.com.cn/images/download_w.gif" border="0" align="absbottom" /></a>(包含大、中、小尺寸) <a href="http://www.webxml.com.cn/zh_cn/weather_icon.aspx" target="_blank">天气图例说明</a> <a href="http://www.webxml.com.cn/files/weather_eg.zip">调用此天气预报Web Services实例下载</a> (VB ASP.net 2.0)</p><br /> </wsdl:documentation> <wsdl:input message="tns:getWeatherbyCityNameHttpGetIn" /> <wsdl:output message="tns:getWeatherbyCityNameHttpGetOut" /> </wsdl:operation> <wsdl:operation name="getWeatherbyCityNamePro"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><br><h3>根据城市或地区名称查询获得未来三天内天气情况、现在的天气实况、天气和生活指数(For商业用户)</h3><p>调用方法同 getWeatherbyCityName,输入参数:theUserID = 商业用户ID</p><br /> </wsdl:documentation> <wsdl:input message="tns:getWeatherbyCityNameProHttpGetIn" /> <wsdl:output message="tns:getWeatherbyCityNameProHttpGetOut" /> </wsdl:operation> </wsdl:portType> <wsdl:portType name="WeatherWebServiceHttpPost"> <wsdl:operation name="getSupportCity"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><br /><h3>查询本天气预报Web Services支持的国内外城市或地区信息</h3><p>输入参数:byProvinceName = 指定的洲或国内的省份,若为ALL或空则表示返回全部城市;返回数据:一个一维字符串数组 String(),结构为:城市名称(城市代码)。</p><br /></wsdl:documentation> <wsdl:input message="tns:getSupportCityHttpPostIn" /> <wsdl:output message="tns:getSupportCityHttpPostOut" /> </wsdl:operation> <wsdl:operation name="getSupportProvince"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><br /><h3>获得本天气预报Web Services支持的洲、国内外省份和城市信息</h3><p>输入参数:无; 返回数据:一个一维字符串数组 String(),内容为洲或国内省份的名称。</p><br /></wsdl:documentation> <wsdl:input message="tns:getSupportProvinceHttpPostIn" /> <wsdl:output message="tns:getSupportProvinceHttpPostOut" /> </wsdl:operation> <wsdl:operation name="getSupportDataSet"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><br><h3>获得本天气预报Web Services支持的洲、国内外省份和城市信息</h3><p>输入参数:无;返回:DataSet 。DataSet.Tables(0) 为支持的洲和国内省份数据,DataSet.Tables(1) 为支持的国内外城市或地区数据。DataSet.Tables(0).Rows(i).Item("ID") 主键对应 DataSet.Tables(1).Rows(i).Item("ZoneID") 外键。<br />Tables(0):ID = ID主键,Zone = 支持的洲、省份;Tables(1):ID 主键,ZoneID = 对应Tables(0)ID的外键,Area = 城市或地区,AreaCode = 城市或地区代码。</p><br /> </wsdl:documentation> <wsdl:input message="tns:getSupportDataSetHttpPostIn" /> <wsdl:output message="tns:getSupportDataSetHttpPostOut" /> </wsdl:operation> <wsdl:operation name="getWeatherbyCityName"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><br><h3>根据城市或地区名称查询获得未来三天内天气情况、现在的天气实况、天气和生活指数</h3><p>调用方法如下:输入参数:theCityName = 城市中文名称(国外城市可用英文)或城市代码(不输入默认为上海市),如:上海 或 58367,如有城市名称重复请使用城市代码查询(可通过 getSupportCity 或 getSupportDataSet 获得);返回数据: 一个一维数组 String(22),共有23个元素。<br />String(0) 到 String(4):省份,城市,城市代码,城市图片名称,最后更新时间。String(5) 到 String(11):当天的 气温,概况,风向和风力,天气趋势开始图片名称(以下称:图标一),天气趋势结束图片名称(以下称:图标二),现在的天气实况,天气和生活指数。String(12) 到 String(16):第二天的 气温,概况,风向和风力,图标一,图标二。String(17) 到 String(21):第三天的 气温,概况,风向和风力,图标一,图标二。String(22) 被查询的城市或地区的介绍 <br /><a href="http://www.webxml.com.cn/images/weather.zip">下载天气图标<img src="http://www.webxml.com.cn/images/download_w.gif" border="0" align="absbottom" /></a>(包含大、中、小尺寸) <a href="http://www.webxml.com.cn/zh_cn/weather_icon.aspx" target="_blank">天气图例说明</a> <a href="http://www.webxml.com.cn/files/weather_eg.zip">调用此天气预报Web Services实例下载</a> (VB ASP.net 2.0)</p><br /> </wsdl:documentation> <wsdl:input message="tns:getWeatherbyCityNameHttpPostIn" /> <wsdl:output message="tns:getWeatherbyCityNameHttpPostOut" /> </wsdl:operation> <wsdl:operation name="getWeatherbyCityNamePro"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><br><h3>根据城市或地区名称查询获得未来三天内天气情况、现在的天气实况、天气和生活指数(For商业用户)</h3><p>调用方法同 getWeatherbyCityName,输入参数:theUserID = 商业用户ID</p><br /> </wsdl:documentation> <wsdl:input message="tns:getWeatherbyCityNameProHttpPostIn" /> <wsdl:output message="tns:getWeatherbyCityNameProHttpPostOut" /> </wsdl:operation> </wsdl:portType> <wsdl:binding name="WeatherWebServiceSoap" type="tns:WeatherWebServiceSoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="getSupportCity"> <soap:operation soapAction="http://WebXml.com.cn/getSupportCity" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getSupportProvince"> <soap:operation soapAction="http://WebXml.com.cn/getSupportProvince" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getSupportDataSet"> <soap:operation soapAction="http://WebXml.com.cn/getSupportDataSet" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getWeatherbyCityName"> <soap:operation soapAction="http://WebXml.com.cn/getWeatherbyCityName" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getWeatherbyCityNamePro"> <soap:operation soapAction="http://WebXml.com.cn/getWeatherbyCityNamePro" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:binding name="WeatherWebServiceSoap12" type="tns:WeatherWebServiceSoap"> <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="getSupportCity"> <soap12:operation soapAction="http://WebXml.com.cn/getSupportCity" style="document" /> <wsdl:input> <soap12:body use="literal" /> </wsdl:input> <wsdl:output> <soap12:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getSupportProvince"> <soap12:operation soapAction="http://WebXml.com.cn/getSupportProvince" style="document" /> <wsdl:input> <soap12:body use="literal" /> </wsdl:input> <wsdl:output> <soap12:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getSupportDataSet"> <soap12:operation soapAction="http://WebXml.com.cn/getSupportDataSet" style="document" /> <wsdl:input> <soap12:body use="literal" /> </wsdl:input> <wsdl:output> <soap12:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getWeatherbyCityName"> <soap12:operation soapAction="http://WebXml.com.cn/getWeatherbyCityName" style="document" /> <wsdl:input> <soap12:body use="literal" /> </wsdl:input> <wsdl:output> <soap12:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getWeatherbyCityNamePro"> <soap12:operation soapAction="http://WebXml.com.cn/getWeatherbyCityNamePro" style="document" /> <wsdl:input> <soap12:body use="literal" /> </wsdl:input> <wsdl:output> <soap12:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:binding name="WeatherWebServiceHttpGet" type="tns:WeatherWebServiceHttpGet"> <http:binding verb="GET" /> <wsdl:operation name="getSupportCity"> <http:operation location="/getSupportCity" /> <wsdl:input> <http:urlEncoded /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getSupportProvince"> <http:operation location="/getSupportProvince" /> <wsdl:input> <http:urlEncoded /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getSupportDataSet"> <http:operation location="/getSupportDataSet" /> <wsdl:input> <http:urlEncoded /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getWeatherbyCityName"> <http:operation location="/getWeatherbyCityName" /> <wsdl:input> <http:urlEncoded /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getWeatherbyCityNamePro"> <http:operation location="/getWeatherbyCityNamePro" /> <wsdl:input> <http:urlEncoded /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:binding name="WeatherWebServiceHttpPost" type="tns:WeatherWebServiceHttpPost"> <http:binding verb="POST" /> <wsdl:operation name="getSupportCity"> <http:operation location="/getSupportCity" /> <wsdl:input> <mime:content type="application/x-www-form-urlencoded" /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getSupportProvince"> <http:operation location="/getSupportProvince" /> <wsdl:input> <mime:content type="application/x-www-form-urlencoded" /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getSupportDataSet"> <http:operation location="/getSupportDataSet" /> <wsdl:input> <mime:content type="application/x-www-form-urlencoded" /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getWeatherbyCityName"> <http:operation location="/getWeatherbyCityName" /> <wsdl:input> <mime:content type="application/x-www-form-urlencoded" /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="getWeatherbyCityNamePro"> <http:operation location="/getWeatherbyCityNamePro" /> <wsdl:input> <mime:content type="application/x-www-form-urlencoded" /> </wsdl:input> <wsdl:output> <mime:mimeXml part="Body" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="WeatherWebService"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><a href="http://www.webxml.com.cn/" target="_blank">WebXml.com.cn</a> <strong>天气预报 Web 服务,</strong>数据来源于<strong>中国气象局</strong> <a href="http://www.cma.gov.cn/" target="_blank">http://www.cma.gov.cn/</a> ,数据每2.5小时左右自动更新一次,准确可靠。包括 340 多个中国主要城市和 60 多个国外主要城市三日内的天气预报数据。</br>此天气预报Web Services请不要用于任何商业目的,若有需要请<a href="http://www.webxml.com.cn/zh_cn/contact_us.aspx" target="_blank">联系我们</a>,欢迎技术交流。 QQ:8409035<br /><strong>使用本站 WEB 服务请注明或链接本站:http://www.webxml.com.cn/ 感谢大家的支持</strong>!<br /><span style="color:#999999;">通知:天气预报 WEB 服务如原来使用地址 http://www.onhap.com/WebServices/WeatherWebService.asmx 的,请改成现在使用的服务地址 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx ,重新引用即可。</span><br /><br />&nbsp; </wsdl:documentation> <wsdl:port name="WeatherWebServiceSoap" binding="tns:WeatherWebServiceSoap"> <soap:address location="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx" /> </wsdl:port> <wsdl:port name="WeatherWebServiceSoap12" binding="tns:WeatherWebServiceSoap12"> <soap12:address location="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx" /> </wsdl:port> <wsdl:port name="WeatherWebServiceHttpGet" binding="tns:WeatherWebServiceHttpGet"> <http:address location="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx" /> </wsdl:port> <wsdl:port name="WeatherWebServiceHttpPost" binding="tns:WeatherWebServiceHttpPost"> <http:address location="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx" /> </wsdl:port> </wsdl:service> </wsdl:definitions>
?在同等目录下建立一个文件WSDL2Java.bat
set Axis_Lib=E:\workspace\axisClient\WebRoot\WEB-INF\lib set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% set Output_Path=E:\workspace\axisClient\src set Package=weather %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% WeatherWebService.wsdl
?准备好 以上之后,执行WSDL2Java.bat文件,刷新src目录,会看到一大堆java源文件。至此已经完成,接下来测试,新建test包,在以下建立一个测试类:
package test; import java.rmi.RemoteException; import javax.xml.rpc.ServiceException; import weather.WeatherWebService; import weather.WeatherWebServiceLocator; public class WeatherClient { public static void main(String[] args) { WeatherWebService service = new WeatherWebServiceLocator(); String[] infos = null; try { infos = service.getWeatherWebServiceSoap().getWeatherbyCityName("广州"); } catch (ServiceException e) { e.printStackTrace(); } catch (RemoteException e) { e.printStackTrace(); } for(int i =0;i<infos.length;i++) { System.out.println(infos[i]+"\t"); } } }
?运行后就可以得到“广州”的天气预报了。