当前位置 : 主页 > 网页制作 > Nodejs >

WebService学习总结 四 WebService开发天气预报客户端程序

来源:互联网 收集:自由互联 发布时间:2021-06-24
一 首先找到一个免费天气预报的WebService服务接口 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl 二 查看其wsdl文档并保存到本地 三 使用wsimport工具生成客户端代码 wsimport -keep 本地

一  首先找到一个免费天气预报的WebService服务接口

http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

二 查看其wsdl文档并保存到本地

三 使用wsimport工具生成客户端代码 wsimport -keep 本地wsdl文档路径

发现生成代码的过程中出现错误,s:schema标签错误,经过网络查找问题,找到了解决方法。把全部的 <s:elementref="s:schema" /><s:any /> 替换  <s:anyminOccurs="2" maxOccurs="2"/> 即可。

代码如下:

生成的客户端代码

 /WetherClient/src/cn/com/webxml/ArrayOfString.java
/WetherClient/src/cn/com/webxml/DataSet.java
/WetherClient/src/cn/com/webxml/GetSupportCity.java
/WetherClient/src/cn/com/webxml/GetSupportCityResponse.java
/WetherClient/src/cn/com/webxml/GetSupportDataSet.java
/WetherClient/src/cn/com/webxml/GetSupportDataSetResponse.java
/WetherClient/src/cn/com/webxml/GetSupportProvince.java
/WetherClient/src/cn/com/webxml/GetSupportProvinceResponse.java
/WetherClient/src/cn/com/webxml/GetWeatherbyCityName.java
/WetherClient/src/cn/com/webxml/GetWeatherbyCityNamePro.java
/WetherClient/src/cn/com/webxml/GetWeatherbyCityNameProResponse.java
/WetherClient/src/cn/com/webxml/GetWeatherbyCityNameResponse.java
/WetherClient/src/cn/com/webxml/ObjectFactory.java
/WetherClient/src/cn/com/webxml/package-info.java
/WetherClient/src/cn/com/webxml/WeatherWebService.java
/WetherClient/src/cn/com/webxml/WeatherWebServiceSoap.java

测试代码:

package com.cl.test;

import java.awt.List;

import cn.com.webxml.ArrayOfString;
import cn.com.webxml.WeatherWebService;
import cn.com.webxml.WeatherWebServiceSoap;

public class WetherClientTest {

	public static void main(String[] args) {
		WeatherWebService factory=new WeatherWebService();
		WeatherWebServiceSoap soap=factory.getWeatherWebServiceSoap();
		ArrayOfString aos=soap.getWeatherbyCityName("北京");
		java.util.List<String> list=aos.getString();
		System.out.println(list);
	}

}

注意:工厂在wsdl文档的<wsdl:service name="WeatherWebService">看出是这个类: WeatherWebService

服务接口也是在wsdl文档的<wsdl:port name="WeatherWebServiceSoap" binding="tns:WeatherWebServiceSoap">看出是这个服务接口:WeatherWebServiceSoap。

网友评论