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

webservice学习笔记(3)--调用天气

来源:互联网 收集:自由互联 发布时间:2021-06-24
1. 找到提供天气预报 Webservice的网络地址 http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx 2. 使用eclipse的web service浏览器访问 3. 客户端编码方式访问 –借助命令工具自动生成客户端代码 –

1.找到提供天气预报Webservice的网络地址

http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx

2. 使用eclipse的web service浏览器访问

3. 客户端编码方式访问

– 借助命令工具自动生成客户端代码

– 借助生成的代码编写请求代码

4.进入要生成项目文件夹下的src目录,在该目录下使用wsimport -keep urt(文件.wsdl),wsimport是jdk自带的工具

E:\Users\wuhui\Workspaces\MyEclipseProfessional2014\weather_webservice\src>"D:\P
rogram Files\Java\jdk1.7.0_17\bin\wsimport.exe"  -keep  E:\Users\wuhui\Workspace
s\MyEclipseProfessional2014\weather_webservice\weather.wsdl

生成后的代码如图:



5.客户端测试代码:

/**     
 * @文件名称: ClientTest.java   
 * @描述: TODO  
 * @作者:  一叶扁舟(skiff)
 * @时间:2017年2月21日 下午2:22:39  
 * @版本:V1.0     
 */ 
package cn.skiff.www.webservice.weather.client;

import java.util.List;

import cn.com.webxml.ArrayOfString;
import cn.com.webxml.WeatherWS;
import cn.com.webxml.WeatherWSSoap;

/**  
 * @类功能说明:    
 * @作者: 一叶扁舟 (skiff)
 * @创建时间:2017年2月21日 下午2:22:39  
 * @版本:V1.0  
 */
public class ClientTest {
	public static void main(String[] args) {
		WeatherWS weatherWS = new WeatherWS();
		WeatherWSSoap weatherWSSoap = 	weatherWS.getWeatherWSSoap();
		ArrayOfString weather = weatherWSSoap.getWeather("福州", null);
		List<String> list = weather.getString();
		System.out.println(list);
	}

}

6.说明: 直接生成客户端代码会抛异常, 无法生成客户端代码, 解决办法:

(1). 将对应的wsdl文档保存到本地

(2). 修改wsdl文档的部分内容:

 <s:element ref="s:schema" /><s:any /> 替换成 <s:any minOccurs="2" maxOccurs="2"/>

备注: 这个是Java调用net的webservice都有的问题

网友评论