WebService(实践)——天气预报WebService
上篇通过一个自己写的一个简单实例,了解了一下什么是WebService,这篇我们通过调用天气预报的WebService来获取所在城市的天气情况,进一步加深对WebService的理解。 一、天气预报的wsdl地址 http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl 直接在cmd命令窗口通过wsimport导出服务,报错: 运行结果显示,使用wsimport工具直接生成客户端代码会抛异常,无法生成客户端代码,只是因为我们要调用的WebService是用.net写的,这个是Java调用net的webservice都有的问题,这个问题的解决办法如下: 在火狐或者360中右键另存为后缀名为wsdl的wsdl文件 二、通过wsimpot生成客户端代码将WeatherWS.wsdl保存到D:testwbwh目录下面,然后通过wsimport进行生成客户端的操作 导出命令:D:testwbwh>wsimport -d d:/test/wb/wh/ -keep ?WeatherWS.wsdl 出现下图说明导出成功 三、客户端测试将d:/test/wb/wh下的整个cn文件夹拷贝到一个java项目中去,整体结构如下: 写客户端测试:
package com.tgb.zll.test; import java.util.List; import org.junit.Test; import cn.com.webxml.ArrayOfString; import cn.com.webxml.WeatherWS; import cn.com.webxml.WeatherWSSoap; public class weatherTest { @Test public void testGetWeatherByCity(){ WeatherWS factory=new WeatherWS(); WeatherWSSoap wsoap=factory.getWeatherWSSoap(); ArrayOfString weatherInfo=wsoap.getWeather("廊坊",null); List<String> weatherList=weatherInfo.getString(); for (String string : weatherList) { System.out.println(string); } } } 测试结果: 四、小结通过天气预报的WebService实例,应该进一步了解整个WebService的作用与操作流程!即: 1、提供WebService接口 2、通过WebService接口导出客户端 ? ? 3、调用接口对应的方法。 ? ? 一个相对来说较好的WebService服务,应该是从wsdl编写开始的,即所谓的契约优先开发模式!所以我们如果想要提供对外的服务,并且基于契约优先开发的话,流程应该如下: 1、编写schema规范 2、引用编写好的schema规范,编写对应的wsdl文件 3、通过wsdl生成wsdl服务端,主要是保留接口 4、提供wsdl接口的实现类 5、服务WebService服务 6、别人通过你提供的WebService服务,导出对应的客户端代码! 下篇我们按照这个流程来写一个简单完整的WebService服务 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Webservice with Apache Axis
- Angularjs手风琴ng点击面板标题
- vim 常用快捷键
- 如果在AngularJS中满足条件,则选择选择选项菜单
- vim 之自动缩进(smartindent) tab 空格数设置为4
- 学习使用bootstrap基本控件(table、form、butto
- axis2发布webservice服务端,【axis2、cxf】实现客
- Centons下 解决yum Loaded plugins: fastestmirr
- php extension automatic deploy in mac(windows
- bash – pipe stdout和stderr到shell脚本中的两个