效果
1、eclipse中新建一个Java项目
2、通过命名获取天气的客户端信息
首先,打开天气网站http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl
然后,在Java项目的src目录下,新建一个文档weather.wsdl,文件名可以不一样
打开文件,把天气网站的所有文字复制粘贴到这个文件中
1 <wsdl:definitions 2 xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 3 xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" 4 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 5 xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 6 xmlns:tns="http://WebXml.com.cn/" 7 xmlns:s="http://www.w3.org/2001/XMLSchema" 8 xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" 9 xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 10 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 11 targetNamespace="http://WebXml.com.cn/"> 12 <wsdl:documentation 13 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 14 <a href="http://www.webxml.com.cn/" target="_blank">WebXml.com.cn</a> 15 <strong>2400多个城市天气预报Web服务</strong> 16 ,包含2300个以上中国城市和100个以上国外城市天气预报数据。数据每2.5小时左右自动更新一次,准确可靠。 17 <br /> 18 使用本站 WEB 服务请注明或链接本站: 19 <a href="http://www.webxml.com.cn/" target="_blank">http://www.webxml.com.cn/</a> 20 感谢大家的支持! 21 <br /> 22 <br /> 23 <img alt="PDF" title="PDF file" 24 src="http://www.webxml.com.cn/images/icon/pdf.gif" 25 style="vertical-align: middle;" /> 26 <a href="http://www.webxml.com.cn/files/WeatherWsHelp.pdf" 27 target="_blank">接口帮助文档</a> &nbsp;&nbsp;&nbsp; 28 <img alt="ZIP" title="ZIP file" 29 src="http://www.webxml.com.cn/images/icon/zip.gif" 30 style="vertical-align: middle;" /> 31 <a href="http://www.webxml.com.cn/files/about_city.zip">部分城市介绍和气候背景</a> &nbsp;&nbsp;&nbsp; 32 <img alt="ZIP" title="ZIP file" 33 src="http://www.webxml.com.cn/images/icon/zip.gif" 34 style="vertical-align: middle;" /> 35 <a href="http://www.webxml.com.cn/files/city_photo.zip">部分城市图片</a> &nbsp;&nbsp;&nbsp; 36 <img alt="HTML" title="HTML file" 37 src="http://www.webxml.com.cn/images/icon/html.gif" 38 style="vertical-align: middle;" /> 39 <a href="http://www.webxml.com.cn/zh_cn/weather_icon.aspx" 40 target="_blank">天气现象和图例</a> 41 <br />&nbsp; 42 </wsdl:documentation> 43 <wsdl:types> 44 <s:schema elementFormDefault="qualified" 45 targetNamespace="http://WebXml.com.cn/"> 46 <s:element name="getRegionDataset"> 47 <s:complexType /> 48 </s:element> 49 <s:element name="getRegionDatasetResponse"> 50 <s:complexType> 51 <s:sequence> 52 <s:element minOccurs="0" maxOccurs="1" 53 name="getRegionDatasetResult"> 54 <s:complexType> 55 <s:sequence> 56 <s:any /> 57 </s:sequence> 58 </s:complexType> 59 </s:element> 60 </s:sequence> 61 </s:complexType> 62 </s:element> 63 <s:element name="getRegionProvince"> 64 <s:complexType /> 65 </s:element> 66 <s:element name="getRegionProvinceResponse"> 67 <s:complexType> 68 <s:sequence> 69 <s:element minOccurs="0" maxOccurs="1" 70 name="getRegionProvinceResult" type="tns:ArrayOfString" /> 71 </s:sequence> 72 </s:complexType> 73 </s:element> 74 <s:complexType name="ArrayOfString"> 75 <s:sequence> 76 <s:element minOccurs="0" maxOccurs="unbounded" 77 name="string" nillable="true" type="s:string" /> 78 </s:sequence> 79 </s:complexType> 80 <s:element name="getRegionCountry"> 81 <s:complexType /> 82 </s:element> 83 <s:element name="getRegionCountryResponse"> 84 <s:complexType> 85 <s:sequence> 86 <s:element minOccurs="0" maxOccurs="1" 87 name="getRegionCountryResult" type="tns:ArrayOfString" /> 88 </s:sequence> 89 </s:complexType> 90 </s:element> 91 <s:element name="getSupportCityDataset"> 92 <s:complexType> 93 <s:sequence> 94 <s:element minOccurs="0" maxOccurs="1" 95 name="theRegionCode" type="s:string" /> 96 </s:sequence> 97 </s:complexType> 98 </s:element> 99 <s:element name="getSupportCityDatasetResponse"> 100 <s:complexType> 101 <s:sequence> 102 <s:element minOccurs="0" maxOccurs="1" 103 name="getSupportCityDatasetResult"> 104 <s:complexType> 105 <s:sequence> 106 <s:any /> 107 </s:sequence> 108 </s:complexType> 109 </s:element> 110 </s:sequence> 111 </s:complexType> 112 </s:element> 113 <s:element name="getSupportCityString"> 114 <s:complexType> 115 <s:sequence> 116 <s:element minOccurs="0" maxOccurs="1" 117 name="theRegionCode" type="s:string" /> 118 </s:sequence> 119 </s:complexType> 120 </s:element> 121 <s:element name="getSupportCityStringResponse"> 122 <s:complexType> 123 <s:sequence> 124 <s:element minOccurs="0" maxOccurs="1" 125 name="getSupportCityStringResult" type="tns:ArrayOfString" /> 126 </s:sequence> 127 </s:complexType> 128 </s:element> 129 <s:element name="getWeather"> 130 <s:complexType> 131 <s:sequence> 132 <s:element minOccurs="0" maxOccurs="1" 133 name="theCityCode" type="s:string" /> 134 <s:element minOccurs="0" maxOccurs="1" name="theUserID" 135 type="s:string" /> 136 </s:sequence> 137 </s:complexType> 138 </s:element> 139 <s:element name="getWeatherResponse"> 140 <s:complexType> 141 <s:sequence> 142 <s:element minOccurs="0" maxOccurs="1" 143 name="getWeatherResult" type="tns:ArrayOfString" /> 144 </s:sequence> 145 </s:complexType> 146 </s:element> 147 <s:element name="DataSet" nillable="true"> 148 <s:complexType> 149 <s:sequence> 150 <s:any /> 151 </s:sequence> 152 </s:complexType> 153 </s:element> 154 <s:element name="ArrayOfString" nillable="true" 155 type="tns:ArrayOfString" /> 156 </s:schema> 157 </wsdl:types> 158 <wsdl:message name="getRegionDatasetSoapIn"> 159 <wsdl:part name="parameters" element="tns:getRegionDataset" /> 160 </wsdl:message> 161 <wsdl:message name="getRegionDatasetSoapOut"> 162 <wsdl:part name="parameters" 163 element="tns:getRegionDatasetResponse" /> 164 </wsdl:message> 165 <wsdl:message name="getRegionProvinceSoapIn"> 166 <wsdl:part name="parameters" element="tns:getRegionProvince" /> 167 </wsdl:message> 168 <wsdl:message name="getRegionProvinceSoapOut"> 169 <wsdl:part name="parameters" 170 element="tns:getRegionProvinceResponse" /> 171 </wsdl:message> 172 <wsdl:message name="getRegionCountrySoapIn"> 173 <wsdl:part name="parameters" element="tns:getRegionCountry" /> 174 </wsdl:message> 175 <wsdl:message name="getRegionCountrySoapOut"> 176 <wsdl:part name="parameters" 177 element="tns:getRegionCountryResponse" /> 178 </wsdl:message> 179 <wsdl:message name="getSupportCityDatasetSoapIn"> 180 <wsdl:part name="parameters" 181 element="tns:getSupportCityDataset" /> 182 </wsdl:message> 183 <wsdl:message name="getSupportCityDatasetSoapOut"> 184 <wsdl:part name="parameters" 185 element="tns:getSupportCityDatasetResponse" /> 186 </wsdl:message> 187 <wsdl:message name="getSupportCityStringSoapIn"> 188 <wsdl:part name="parameters" 189 element="tns:getSupportCityString" /> 190 </wsdl:message> 191 <wsdl:message name="getSupportCityStringSoapOut"> 192 <wsdl:part name="parameters" 193 element="tns:getSupportCityStringResponse" /> 194 </wsdl:message> 195 <wsdl:message name="getWeatherSoapIn"> 196 <wsdl:part name="parameters" element="tns:getWeather" /> 197 </wsdl:message> 198 <wsdl:message name="getWeatherSoapOut"> 199 <wsdl:part name="parameters" 200 element="tns:getWeatherResponse" /> 201 </wsdl:message> 202 <wsdl:message name="getRegionDatasetHttpGetIn" /> 203 <wsdl:message name="getRegionDatasetHttpGetOut"> 204 <wsdl:part name="Body" element="tns:DataSet" /> 205 </wsdl:message> 206 <wsdl:message name="getRegionProvinceHttpGetIn" /> 207 <wsdl:message name="getRegionProvinceHttpGetOut"> 208 <wsdl:part name="Body" element="tns:ArrayOfString" /> 209 </wsdl:message> 210 <wsdl:message name="getRegionCountryHttpGetIn" /> 211 <wsdl:message name="getRegionCountryHttpGetOut"> 212 <wsdl:part name="Body" element="tns:ArrayOfString" /> 213 </wsdl:message> 214 <wsdl:message name="getSupportCityDatasetHttpGetIn"> 215 <wsdl:part name="theRegionCode" type="s:string" /> 216 </wsdl:message> 217 <wsdl:message name="getSupportCityDatasetHttpGetOut"> 218 <wsdl:part name="Body" element="tns:DataSet" /> 219 </wsdl:message> 220 <wsdl:message name="getSupportCityStringHttpGetIn"> 221 <wsdl:part name="theRegionCode" type="s:string" /> 222 </wsdl:message> 223 <wsdl:message name="getSupportCityStringHttpGetOut"> 224 <wsdl:part name="Body" element="tns:ArrayOfString" /> 225 </wsdl:message> 226 <wsdl:message name="getWeatherHttpGetIn"> 227 <wsdl:part name="theCityCode" type="s:string" /> 228 <wsdl:part name="theUserID" type="s:string" /> 229 </wsdl:message> 230 <wsdl:message name="getWeatherHttpGetOut"> 231 <wsdl:part name="Body" element="tns:ArrayOfString" /> 232 </wsdl:message> 233 <wsdl:message name="getRegionDatasetHttpPostIn" /> 234 <wsdl:message name="getRegionDatasetHttpPostOut"> 235 <wsdl:part name="Body" element="tns:DataSet" /> 236 </wsdl:message> 237 <wsdl:message name="getRegionProvinceHttpPostIn" /> 238 <wsdl:message name="getRegionProvinceHttpPostOut"> 239 <wsdl:part name="Body" element="tns:ArrayOfString" /> 240 </wsdl:message> 241 <wsdl:message name="getRegionCountryHttpPostIn" /> 242 <wsdl:message name="getRegionCountryHttpPostOut"> 243 <wsdl:part name="Body" element="tns:ArrayOfString" /> 244 </wsdl:message> 245 <wsdl:message name="getSupportCityDatasetHttpPostIn"> 246 <wsdl:part name="theRegionCode" type="s:string" /> 247 </wsdl:message> 248 <wsdl:message name="getSupportCityDatasetHttpPostOut"> 249 <wsdl:part name="Body" element="tns:DataSet" /> 250 </wsdl:message> 251 <wsdl:message name="getSupportCityStringHttpPostIn"> 252 <wsdl:part name="theRegionCode" type="s:string" /> 253 </wsdl:message> 254 <wsdl:message name="getSupportCityStringHttpPostOut"> 255 <wsdl:part name="Body" element="tns:ArrayOfString" /> 256 </wsdl:message> 257 <wsdl:message name="getWeatherHttpPostIn"> 258 <wsdl:part name="theCityCode" type="s:string" /> 259 <wsdl:part name="theUserID" type="s:string" /> 260 </wsdl:message> 261 <wsdl:message name="getWeatherHttpPostOut"> 262 <wsdl:part name="Body" element="tns:ArrayOfString" /> 263 </wsdl:message> 264 <wsdl:portType name="WeatherWSSoap"> 265 <wsdl:operation name="getRegionDataset"> 266 <wsdl:documentation 267 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 268 <br /> 269 <h3>获得中国省份、直辖市、地区;国家名称(国外)和与之对应的ID</h3> 270 <p>输入参数:无,返回数据:DataSet。</p> 271 <br /> 272 </wsdl:documentation> 273 <wsdl:input message="tns:getRegionDatasetSoapIn" /> 274 <wsdl:output message="tns:getRegionDatasetSoapOut" /> 275 </wsdl:operation> 276 <wsdl:operation name="getRegionProvince"> 277 <wsdl:documentation 278 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 279 <br /> 280 <h3>获得中国省份、直辖市、地区和与之对应的ID</h3> 281 <p>输入参数:无,返回数据:一维字符串数组。</p> 282 <br /> 283 </wsdl:documentation> 284 <wsdl:input message="tns:getRegionProvinceSoapIn" /> 285 <wsdl:output message="tns:getRegionProvinceSoapOut" /> 286 </wsdl:operation> 287 <wsdl:operation name="getRegionCountry"> 288 <wsdl:documentation 289 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 290 <br /> 291 <h3>获得国外国家名称和与之对应的ID</h3> 292 <p>输入参数:无,返回数据:一维字符串数组。</p> 293 <br /> 294 </wsdl:documentation> 295 <wsdl:input message="tns:getRegionCountrySoapIn" /> 296 <wsdl:output message="tns:getRegionCountrySoapOut" /> 297 </wsdl:operation> 298 <wsdl:operation name="getSupportCityDataset"> 299 <wsdl:documentation 300 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 301 <br /> 302 <h3>获得支持的城市/地区名称和与之对应的ID</h3> 303 <p>输入参数:theRegionCode = 省市、国家ID或名称,返回数据:DataSet。</p> 304 <br /> 305 </wsdl:documentation> 306 <wsdl:input message="tns:getSupportCityDatasetSoapIn" /> 307 <wsdl:output message="tns:getSupportCityDatasetSoapOut" /> 308 </wsdl:operation> 309 <wsdl:operation name="getSupportCityString"> 310 <wsdl:documentation 311 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 312 <br /> 313 <h3>获得支持的城市/地区名称和与之对应的ID</h3> 314 <p>输入参数:theRegionCode = 省市、国家ID或名称,返回数据:一维字符串数组。</p> 315 <br /> 316 </wsdl:documentation> 317 <wsdl:input message="tns:getSupportCityStringSoapIn" /> 318 <wsdl:output message="tns:getSupportCityStringSoapOut" /> 319 </wsdl:operation> 320 <wsdl:operation name="getWeather"> 321 <wsdl:documentation 322 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 323 <br /> 324 <h3>获得天气预报数据</h3> 325 <p>输入参数:城市/地区ID或名称,返回数据:一维字符串数组。</p> 326 <br /> 327 </wsdl:documentation> 328 <wsdl:input message="tns:getWeatherSoapIn" /> 329 <wsdl:output message="tns:getWeatherSoapOut" /> 330 </wsdl:operation> 331 </wsdl:portType> 332 <wsdl:portType name="WeatherWSHttpGet"> 333 <wsdl:operation name="getRegionDataset"> 334 <wsdl:documentation 335 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 336 <br /> 337 <h3>获得中国省份、直辖市、地区;国家名称(国外)和与之对应的ID</h3> 338 <p>输入参数:无,返回数据:DataSet。</p> 339 <br /> 340 </wsdl:documentation> 341 <wsdl:input message="tns:getRegionDatasetHttpGetIn" /> 342 <wsdl:output message="tns:getRegionDatasetHttpGetOut" /> 343 </wsdl:operation> 344 <wsdl:operation name="getRegionProvince"> 345 <wsdl:documentation 346 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 347 <br /> 348 <h3>获得中国省份、直辖市、地区和与之对应的ID</h3> 349 <p>输入参数:无,返回数据:一维字符串数组。</p> 350 <br /> 351 </wsdl:documentation> 352 <wsdl:input message="tns:getRegionProvinceHttpGetIn" /> 353 <wsdl:output message="tns:getRegionProvinceHttpGetOut" /> 354 </wsdl:operation> 355 <wsdl:operation name="getRegionCountry"> 356 <wsdl:documentation 357 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 358 <br /> 359 <h3>获得国外国家名称和与之对应的ID</h3> 360 <p>输入参数:无,返回数据:一维字符串数组。</p> 361 <br /> 362 </wsdl:documentation> 363 <wsdl:input message="tns:getRegionCountryHttpGetIn" /> 364 <wsdl:output message="tns:getRegionCountryHttpGetOut" /> 365 </wsdl:operation> 366 <wsdl:operation name="getSupportCityDataset"> 367 <wsdl:documentation 368 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 369 <br /> 370 <h3>获得支持的城市/地区名称和与之对应的ID</h3> 371 <p>输入参数:theRegionCode = 省市、国家ID或名称,返回数据:DataSet。</p> 372 <br /> 373 </wsdl:documentation> 374 <wsdl:input message="tns:getSupportCityDatasetHttpGetIn" /> 375 <wsdl:output 376 message="tns:getSupportCityDatasetHttpGetOut" /> 377 </wsdl:operation> 378 <wsdl:operation name="getSupportCityString"> 379 <wsdl:documentation 380 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 381 <br /> 382 <h3>获得支持的城市/地区名称和与之对应的ID</h3> 383 <p>输入参数:theRegionCode = 省市、国家ID或名称,返回数据:一维字符串数组。</p> 384 <br /> 385 </wsdl:documentation> 386 <wsdl:input message="tns:getSupportCityStringHttpGetIn" /> 387 <wsdl:output message="tns:getSupportCityStringHttpGetOut" /> 388 </wsdl:operation> 389 <wsdl:operation name="getWeather"> 390 <wsdl:documentation 391 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 392 <br /> 393 <h3>获得天气预报数据</h3> 394 <p>输入参数:城市/地区ID或名称,返回数据:一维字符串数组。</p> 395 <br /> 396 </wsdl:documentation> 397 <wsdl:input message="tns:getWeatherHttpGetIn" /> 398 <wsdl:output message="tns:getWeatherHttpGetOut" /> 399 </wsdl:operation> 400 </wsdl:portType> 401 <wsdl:portType name="WeatherWSHttpPost"> 402 <wsdl:operation name="getRegionDataset"> 403 <wsdl:documentation 404 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 405 <br /> 406 <h3>获得中国省份、直辖市、地区;国家名称(国外)和与之对应的ID</h3> 407 <p>输入参数:无,返回数据:DataSet。</p> 408 <br /> 409 </wsdl:documentation> 410 <wsdl:input message="tns:getRegionDatasetHttpPostIn" /> 411 <wsdl:output message="tns:getRegionDatasetHttpPostOut" /> 412 </wsdl:operation> 413 <wsdl:operation name="getRegionProvince"> 414 <wsdl:documentation 415 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 416 <br /> 417 <h3>获得中国省份、直辖市、地区和与之对应的ID</h3> 418 <p>输入参数:无,返回数据:一维字符串数组。</p> 419 <br /> 420 </wsdl:documentation> 421 <wsdl:input message="tns:getRegionProvinceHttpPostIn" /> 422 <wsdl:output message="tns:getRegionProvinceHttpPostOut" /> 423 </wsdl:operation> 424 <wsdl:operation name="getRegionCountry"> 425 <wsdl:documentation 426 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 427 <br /> 428 <h3>获得国外国家名称和与之对应的ID</h3> 429 <p>输入参数:无,返回数据:一维字符串数组。</p> 430 <br /> 431 </wsdl:documentation> 432 <wsdl:input message="tns:getRegionCountryHttpPostIn" /> 433 <wsdl:output message="tns:getRegionCountryHttpPostOut" /> 434 </wsdl:operation> 435 <wsdl:operation name="getSupportCityDataset"> 436 <wsdl:documentation 437 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 438 <br /> 439 <h3>获得支持的城市/地区名称和与之对应的ID</h3> 440 <p>输入参数:theRegionCode = 省市、国家ID或名称,返回数据:DataSet。</p> 441 <br /> 442 </wsdl:documentation> 443 <wsdl:input message="tns:getSupportCityDatasetHttpPostIn" /> 444 <wsdl:output 445 message="tns:getSupportCityDatasetHttpPostOut" /> 446 </wsdl:operation> 447 <wsdl:operation name="getSupportCityString"> 448 <wsdl:documentation 449 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 450 <br /> 451 <h3>获得支持的城市/地区名称和与之对应的ID</h3> 452 <p>输入参数:theRegionCode = 省市、国家ID或名称,返回数据:一维字符串数组。</p> 453 <br /> 454 </wsdl:documentation> 455 <wsdl:input message="tns:getSupportCityStringHttpPostIn" /> 456 <wsdl:output 457 message="tns:getSupportCityStringHttpPostOut" /> 458 </wsdl:operation> 459 <wsdl:operation name="getWeather"> 460 <wsdl:documentation 461 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 462 <br /> 463 <h3>获得天气预报数据</h3> 464 <p>输入参数:城市/地区ID或名称,返回数据:一维字符串数组。</p> 465 <br /> 466 </wsdl:documentation> 467 <wsdl:input message="tns:getWeatherHttpPostIn" /> 468 <wsdl:output message="tns:getWeatherHttpPostOut" /> 469 </wsdl:operation> 470 </wsdl:portType> 471 <wsdl:binding name="WeatherWSSoap" 472 type="tns:WeatherWSSoap"> 473 <soap:binding 474 transport="http://schemas.xmlsoap.org/soap/http" /> 475 <wsdl:operation name="getRegionDataset"> 476 <soap:operation 477 soapAction="http://WebXml.com.cn/getRegionDataset" style="document" /> 478 <wsdl:input> 479 <soap:body use="literal" /> 480 </wsdl:input> 481 <wsdl:output> 482 <soap:body use="literal" /> 483 </wsdl:output> 484 </wsdl:operation> 485 <wsdl:operation name="getRegionProvince"> 486 <soap:operation 487 soapAction="http://WebXml.com.cn/getRegionProvince" style="document" /> 488 <wsdl:input> 489 <soap:body use="literal" /> 490 </wsdl:input> 491 <wsdl:output> 492 <soap:body use="literal" /> 493 </wsdl:output> 494 </wsdl:operation> 495 <wsdl:operation name="getRegionCountry"> 496 <soap:operation 497 soapAction="http://WebXml.com.cn/getRegionCountry" style="document" /> 498 <wsdl:input> 499 <soap:body use="literal" /> 500 </wsdl:input> 501 <wsdl:output> 502 <soap:body use="literal" /> 503 </wsdl:output> 504 </wsdl:operation> 505 <wsdl:operation name="getSupportCityDataset"> 506 <soap:operation 507 soapAction="http://WebXml.com.cn/getSupportCityDataset" 508 style="document" /> 509 <wsdl:input> 510 <soap:body use="literal" /> 511 </wsdl:input> 512 <wsdl:output> 513 <soap:body use="literal" /> 514 </wsdl:output> 515 </wsdl:operation> 516 <wsdl:operation name="getSupportCityString"> 517 <soap:operation 518 soapAction="http://WebXml.com.cn/getSupportCityString" 519 style="document" /> 520 <wsdl:input> 521 <soap:body use="literal" /> 522 </wsdl:input> 523 <wsdl:output> 524 <soap:body use="literal" /> 525 </wsdl:output> 526 </wsdl:operation> 527 <wsdl:operation name="getWeather"> 528 <soap:operation 529 soapAction="http://WebXml.com.cn/getWeather" style="document" /> 530 <wsdl:input> 531 <soap:body use="literal" /> 532 </wsdl:input> 533 <wsdl:output> 534 <soap:body use="literal" /> 535 </wsdl:output> 536 </wsdl:operation> 537 </wsdl:binding> 538 <wsdl:binding name="WeatherWSSoap12" 539 type="tns:WeatherWSSoap"> 540 <soap12:binding 541 transport="http://schemas.xmlsoap.org/soap/http" /> 542 <wsdl:operation name="getRegionDataset"> 543 <soap12:operation 544 soapAction="http://WebXml.com.cn/getRegionDataset" style="document" /> 545 <wsdl:input> 546 <soap12:body use="literal" /> 547 </wsdl:input> 548 <wsdl:output> 549 <soap12:body use="literal" /> 550 </wsdl:output> 551 </wsdl:operation> 552 <wsdl:operation name="getRegionProvince"> 553 <soap12:operation 554 soapAction="http://WebXml.com.cn/getRegionProvince" style="document" /> 555 <wsdl:input> 556 <soap12:body use="literal" /> 557 </wsdl:input> 558 <wsdl:output> 559 <soap12:body use="literal" /> 560 </wsdl:output> 561 </wsdl:operation> 562 <wsdl:operation name="getRegionCountry"> 563 <soap12:operation 564 soapAction="http://WebXml.com.cn/getRegionCountry" style="document" /> 565 <wsdl:input> 566 <soap12:body use="literal" /> 567 </wsdl:input> 568 <wsdl:output> 569 <soap12:body use="literal" /> 570 </wsdl:output> 571 </wsdl:operation> 572 <wsdl:operation name="getSupportCityDataset"> 573 <soap12:operation 574 soapAction="http://WebXml.com.cn/getSupportCityDataset" 575 style="document" /> 576 <wsdl:input> 577 <soap12:body use="literal" /> 578 </wsdl:input> 579 <wsdl:output> 580 <soap12:body use="literal" /> 581 </wsdl:output> 582 </wsdl:operation> 583 <wsdl:operation name="getSupportCityString"> 584 <soap12:operation 585 soapAction="http://WebXml.com.cn/getSupportCityString" 586 style="document" /> 587 <wsdl:input> 588 <soap12:body use="literal" /> 589 </wsdl:input> 590 <wsdl:output> 591 <soap12:body use="literal" /> 592 </wsdl:output> 593 </wsdl:operation> 594 <wsdl:operation name="getWeather"> 595 <soap12:operation 596 soapAction="http://WebXml.com.cn/getWeather" style="document" /> 597 <wsdl:input> 598 <soap12:body use="literal" /> 599 </wsdl:input> 600 <wsdl:output> 601 <soap12:body use="literal" /> 602 </wsdl:output> 603 </wsdl:operation> 604 </wsdl:binding> 605 <wsdl:binding name="WeatherWSHttpGet" 606 type="tns:WeatherWSHttpGet"> 607 <http:binding verb="GET" /> 608 <wsdl:operation name="getRegionDataset"> 609 <http:operation location="/getRegionDataset" /> 610 <wsdl:input> 611 <http:urlEncoded /> 612 </wsdl:input> 613 <wsdl:output> 614 <mime:mimeXml part="Body" /> 615 </wsdl:output> 616 </wsdl:operation> 617 <wsdl:operation name="getRegionProvince"> 618 <http:operation location="/getRegionProvince" /> 619 <wsdl:input> 620 <http:urlEncoded /> 621 </wsdl:input> 622 <wsdl:output> 623 <mime:mimeXml part="Body" /> 624 </wsdl:output> 625 </wsdl:operation> 626 <wsdl:operation name="getRegionCountry"> 627 <http:operation location="/getRegionCountry" /> 628 <wsdl:input> 629 <http:urlEncoded /> 630 </wsdl:input> 631 <wsdl:output> 632 <mime:mimeXml part="Body" /> 633 </wsdl:output> 634 </wsdl:operation> 635 <wsdl:operation name="getSupportCityDataset"> 636 <http:operation location="/getSupportCityDataset" /> 637 <wsdl:input> 638 <http:urlEncoded /> 639 </wsdl:input> 640 <wsdl:output> 641 <mime:mimeXml part="Body" /> 642 </wsdl:output> 643 </wsdl:operation> 644 <wsdl:operation name="getSupportCityString"> 645 <http:operation location="/getSupportCityString" /> 646 <wsdl:input> 647 <http:urlEncoded /> 648 </wsdl:input> 649 <wsdl:output> 650 <mime:mimeXml part="Body" /> 651 </wsdl:output> 652 </wsdl:operation> 653 <wsdl:operation name="getWeather"> 654 <http:operation location="/getWeather" /> 655 <wsdl:input> 656 <http:urlEncoded /> 657 </wsdl:input> 658 <wsdl:output> 659 <mime:mimeXml part="Body" /> 660 </wsdl:output> 661 </wsdl:operation> 662 </wsdl:binding> 663 <wsdl:binding name="WeatherWSHttpPost" 664 type="tns:WeatherWSHttpPost"> 665 <http:binding verb="POST" /> 666 <wsdl:operation name="getRegionDataset"> 667 <http:operation location="/getRegionDataset" /> 668 <wsdl:input> 669 <mime:content type="application/x-www-form-urlencoded" /> 670 </wsdl:input> 671 <wsdl:output> 672 <mime:mimeXml part="Body" /> 673 </wsdl:output> 674 </wsdl:operation> 675 <wsdl:operation name="getRegionProvince"> 676 <http:operation location="/getRegionProvince" /> 677 <wsdl:input> 678 <mime:content type="application/x-www-form-urlencoded" /> 679 </wsdl:input> 680 <wsdl:output> 681 <mime:mimeXml part="Body" /> 682 </wsdl:output> 683 </wsdl:operation> 684 <wsdl:operation name="getRegionCountry"> 685 <http:operation location="/getRegionCountry" /> 686 <wsdl:input> 687 <mime:content type="application/x-www-form-urlencoded" /> 688 </wsdl:input> 689 <wsdl:output> 690 <mime:mimeXml part="Body" /> 691 </wsdl:output> 692 </wsdl:operation> 693 <wsdl:operation name="getSupportCityDataset"> 694 <http:operation location="/getSupportCityDataset" /> 695 <wsdl:input> 696 <mime:content type="application/x-www-form-urlencoded" /> 697 </wsdl:input> 698 <wsdl:output> 699 <mime:mimeXml part="Body" /> 700 </wsdl:output> 701 </wsdl:operation> 702 <wsdl:operation name="getSupportCityString"> 703 <http:operation location="/getSupportCityString" /> 704 <wsdl:input> 705 <mime:content type="application/x-www-form-urlencoded" /> 706 </wsdl:input> 707 <wsdl:output> 708 <mime:mimeXml part="Body" /> 709 </wsdl:output> 710 </wsdl:operation> 711 <wsdl:operation name="getWeather"> 712 <http:operation location="/getWeather" /> 713 <wsdl:input> 714 <mime:content type="application/x-www-form-urlencoded" /> 715 </wsdl:input> 716 <wsdl:output> 717 <mime:mimeXml part="Body" /> 718 </wsdl:output> 719 </wsdl:operation> 720 </wsdl:binding> 721 <wsdl:service name="WeatherWS"> 722 <wsdl:documentation 723 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 724 <a href="http://www.webxml.com.cn/" target="_blank">WebXml.com.cn</a> 725 <strong>2400多个城市天气预报Web服务</strong> 726 ,包含2300个以上中国城市和100个以上国外城市天气预报数据。数据每2.5小时左右自动更新一次,准确可靠。 727 <br /> 728 使用本站 WEB 服务请注明或链接本站: 729 <a href="http://www.webxml.com.cn/" target="_blank">http://www.webxml.com.cn/</a> 730 感谢大家的支持! 731 <br /> 732 <br /> 733 <img alt="PDF" title="PDF file" 734 src="http://www.webxml.com.cn/images/icon/pdf.gif" 735 style="vertical-align: middle;" /> 736 <a href="http://www.webxml.com.cn/files/WeatherWsHelp.pdf" 737 target="_blank">接口帮助文档</a> &nbsp;&nbsp;&nbsp; 738 <img alt="ZIP" title="ZIP file" 739 src="http://www.webxml.com.cn/images/icon/zip.gif" 740 style="vertical-align: middle;" /> 741 <a href="http://www.webxml.com.cn/files/about_city.zip">部分城市介绍和气候背景</a> &nbsp;&nbsp;&nbsp; 742 <img alt="ZIP" title="ZIP file" 743 src="http://www.webxml.com.cn/images/icon/zip.gif" 744 style="vertical-align: middle;" /> 745 <a href="http://www.webxml.com.cn/files/city_photo.zip">部分城市图片</a> &nbsp;&nbsp;&nbsp; 746 <img alt="HTML" title="HTML file" 747 src="http://www.webxml.com.cn/images/icon/html.gif" 748 style="vertical-align: middle;" /> 749 <a href="http://www.webxml.com.cn/zh_cn/weather_icon.aspx" 750 target="_blank">天气现象和图例</a> 751 <br />&nbsp; 752 </wsdl:documentation> 753 <wsdl:port name="WeatherWSSoap" binding="tns:WeatherWSSoap"> 754 <soap:address 755 location="http://ws.webxml.com.cn/WebServices/WeatherWS.asmx" /> 756 </wsdl:port> 757 <wsdl:port name="WeatherWSSoap12" 758 binding="tns:WeatherWSSoap12"> 759 <soap12:address 760 location="http://ws.webxml.com.cn/WebServices/WeatherWS.asmx" /> 761 </wsdl:port> 762 <wsdl:port name="WeatherWSHttpGet" 763 binding="tns:WeatherWSHttpGet"> 764 <http:address 765 location="http://ws.webxml.com.cn/WebServices/WeatherWS.asmx" /> 766 </wsdl:port> 767 <wsdl:port name="WeatherWSHttpPost" 768 binding="tns:WeatherWSHttpPost"> 769 <http:address 770 location="http://ws.webxml.com.cn/WebServices/WeatherWS.asmx" /> 771 </wsdl:port> 772 </wsdl:service> 773 </wsdl:definitions>
接着,到这个文件中,Ctrl+F,把<s:element ref="s:schema" />全部删除
还要把 替换为&nbsp;
最后,win+R打开运行,输入cmd,到新建项目的src目录下,输入命令wsimport -keep weather.wsdl(后面这个是文件名)
注:如果发生以下提示(wsimport 不是内部或外部命令,也不是可运行的程序或批处理文件)
解决方法,参考文章:https://blog.csdn.net/jiudihanbing/article/details/52382508
3、创建开启客户端
1 package cn.com.webxml; 2 3 import java.net.MalformedURLException; 4 import java.net.URL; 5 import java.util.List; 6 7 import javax.xml.namespace.QName; 8 import javax.xml.ws.Service; 9 10 /** 11 * @desc 客户端 12 * @author xiaostudy 13 * 14 */ 15 public class MyClient { 16 17 public static void main(String[] args) { 18 //============================================================================= 19 //第一种方式获取视图 20 WeatherWS weatherWS = new WeatherWS(); 21 //获取服务实现类 22 WeatherWSSoap weatherWSSoap = weatherWS.getPort(WeatherWSSoap.class); 23 //============================================================================= 24 25 //============================================================================= 26 //第二种方式获取视图 27 /*URL url = null; 28 try { 29 url = new URL("http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl"); 30 } catch (MalformedURLException e) { 31 e.printStackTrace(); 32 } 33 34 QName qName = new QName("http://WebXml.com.cn/", "WeatherWS"); 35 36 Service service = Service.create(url, qName); 37 WeatherWSSoap weatherWSSoap = service.getPort(WeatherWSSoap.class);*/ 38 //============================================================================= 39 40 //调用服务器接口,发送数据并返回数据 41 ArrayOfString arrayOfString = weatherWSSoap.getWeather("广州", ""); 42 //控制台打印数据 43 List<String> list = arrayOfString.getString(); 44 for(String str : list) { 45 System.out.println(str); 46 } 47 } 48 49 }
1 package cn.com.webxml; 2 3 import java.io.BufferedReader; 4 import java.io.IOException; 5 import java.io.InputStream; 6 import java.io.InputStreamReader; 7 import java.io.OutputStream; 8 import java.net.HttpURLConnection; 9 import java.net.MalformedURLException; 10 import java.net.URL; 11 12 /** 13 * @desc 客户端 14 * @author xiaostudy 15 * 16 */ 17 public class MyClient3 { 18 19 public static void main(String[] args) { 20 try { 21 //第一步:创建服务地址,不是WSDL地址 22 URL url = new URL("http://ws.webxml.com.cn/WebServices/WeatherWS.asmx"); 23 //第二步:打开一个通向服务地址的连接 24 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 25 //第三步:设置参数 26 //3.1发送方式设置:POST必须大写 27 connection.setRequestMethod("POST"); 28 //3.2设置数据格式:content-type 29 connection.setRequestProperty("content-type", "text/xml;charset=utf-8"); 30 //3.3设置输入输出,因为默认新创建的connection没有读写权限 31 connection.setDoInput(true); 32 connection.setDoOutput(true); 33 //第四步:组织SOAP数据,发送请求 34 String xml = getXml("广州"); 35 OutputStream os = connection.getOutputStream(); 36 os.write(xml.getBytes()); 37 //第五步:接收服务端响应,打印 38 int responseCode = connection.getResponseCode(); 39 //5.1判断响应吗是否为200(200表示一切正常) 40 if(responseCode == 200) { 41 //读取数据 42 InputStream is = connection.getInputStream(); 43 //转化为字符流 44 InputStreamReader isr = new InputStreamReader(is); 45 //包装 46 BufferedReader br = new BufferedReader(isr); 47 StringBuffer sb = new StringBuffer(); 48 String temp = null; 49 while(null != (temp = br.readLine())) { 50 sb.append(temp); 51 } 52 System.out.println(sb.toString()); 53 54 //关闭资源 55 if(is != null) { 56 is.close(); 57 is = null; 58 } 59 if(isr != null) { 60 isr.close(); 61 isr = null; 62 } 63 if(br != null) { 64 br.close(); 65 br = null; 66 } 67 if(os != null) { 68 os.close(); 69 os = null; 70 } 71 } 72 } catch (IOException e) { 73 e.printStackTrace(); 74 } 75 76 77 } 78 79 /** 80 * @desc 封装数据的方法 81 * @param str 参数,城市名 82 * @return String 返回类型,返回数据 83 */ 84 private static String getXml(String str) { 85 //前面两行和后面两行是固定格式, 86 //<getWeather>是调用的方法 87 //<theCityCode>和<theUserID>是调用方法里面的参数 88 String soapXML = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" 89 +"<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" 90 +"<soap:Body>" 91 +"<getWeather xmlns=\"http://WebXml.com.cn/\">" 92 +"<theCityCode>"+str+"</theCityCode>" 93 +"<theUserID></theUserID>" 94 +"</getWeather>" 95 +"</soap:Body>" 96 +"</soap:Envelope>"; 97 return soapXML; 98 } 99 100 }
4、运行客户端看结果,右键Run As→Java Application