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

本文介绍如何通过Java客户端调用.NET提供的Weather Webservice,包括获取天气预报WebService的网络地址、使用Eclipse的WebService浏览器访问、客户端编码方式访问及解决生成客户端代码时出现的问题。

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都有的问题


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值