java使用WebService实现调用天气预报功能【超详细】

1、首先建立一个web project  ,我起的名字:weatherInf  【我用的编译器是MyEclipse】

2、在src下新建一个file 起名:WeatherWebService.wsdl,将该链接中的代码  http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl  粘到新建的file中去。

  从<wsdl:definitions标签开始,一直到该标签结束。

3、正常情况下粘贴完都会出现错误,我的是出现标签错误,strongbr 标签提示没有闭合的错误,我又重新自己打了出错的标签,错误解决!

  还有一个错误是 element 标签错误,我上网找了一下解决办法,就是将   <s:element ref="s:schema"/>  替换成为:<s:any minOccurs="2" maxOccurs="2"/>

  将   <s:any/>  标签 删除,问题解决!

4、WeatherWebService.wsdl  文件错误解决完了之后,在该文件上面右键:选择 “New Web Sevice Client”:【我的MyEclipse中是这样的步骤,其他的编译器可能就不一致。】

5、弹出以下窗口,next:

6、弹出下面窗口,next:

7、弹出以下窗口,若没有错误出现就finsh:

8、finsh完了之后会自动解压出一个叫  cn.com.webxml   的包,里面有我们调用查找天气的相关类:

9、新建一个测试包  test,下面新建一个测试类  WeatherTest, 在 main 方法里面加入以下代码,里面的相关城市参数可以修改:

package test;

import java.rmi.RemoteException;
import java.util.List;

import javax.xml.rpc.ServiceException;

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

public class WeatherTest {
public static void main(String[] args) throws RemoteException, ServiceException {
WeatherWebService locator=new WeatherWebService();
//调用getXXPort()方法生成xxSoapBindingStub对象
WeatherWebServiceSoap stud=(WeatherWebServiceSoap) locator.getWeatherWebServiceSoap();
//输出当天的天气状况
List<String> city=stud.getSupportCity("江西").getString();
List<String> province=stud.getSupportProvince().getString();
List<String> weather=stud.getWeatherbyCityName("上海").getString();
for(String c:city) {
System.out.println(c);
System.out.println("--------------");
}

for(String p:province)
System.out.println(p);
System.out.println("--------------");
for(String w:weather)
System.out.println(w);
}
}

10、运行该测试类,控制台输出相关的天气信息:

11、我之前复制过其他大佬的例子,测试类里面使用的不是List数组,而是ArrayofString,但是取出的时候回出现数据类型不一致的错误,因此我就修改为了list。

到此成功实现调用天气预报的方法!

本人小白一枚,如果有不得体或不完善的地方,请各位大佬指正,谢谢~~

原文地址:https://www.cnblogs.com/blogs-of-xiu/p/10304029.html

时间: 2024-10-17 19:57:53

java使用WebService实现调用天气预报功能【超详细】的相关文章

.net请求Webservice简单实现天气预报功能

很久没有接触Webservice的知识,今天稍微复习了一下关于webservice,简单做了一个天气预报的功能,虽然界面丑的厉害,但功能算是实现了,以下是效果展示. 这东西没什么难点,只是天气预报的功能在网站类的开发中会经常用到,所以就简单写下,以便以后查阅. 1.新建一个网站或者web应用程序,添加一个aspx页面,用于展示天气数据.(这个应该不用细讲吧) 2.在网上找一个免费的天气预报的接口,我用的是Webxml网站的,地址如下: http://webservice.webxml.com.c

webservice通信调用天气预报接口实例

转载:http://www.cnblogs.com/warrior4236/p/5668449.html 一:环境搭建 1:新建一个java project工程weatherInf 2:引入相应的jar包 activation.jaraxis-ant.jaraxis.jarcommons-discovery-0.2.jarcommons-logging-1.0.4.jarjaxrpc.jarlog4j-1.2.8.jarmail.jarsaaj.jarwsdl4j-1.5.1.jar 下载axi

java多线程编程从入门到卓越(超详细总结)

导读:java多线程编程不太熟?或是听说过?或是想复习一下?找不到好的文章?别担心我给你们又安利一波,文章内容很全,并且考虑到很多开发中遇到的问题和解决方案.循环渐进,通俗易懂,文章较长,建议收藏再看! 往期精彩放送:一文搞定Java的输入输出流等常见流 一文搞定Java集合类,你还在为Java集合类而烦恼吗? 文章目录 1.多线程的概念 2.多线程并发 3.多线程程序设计 继承Thread类创建线程 新建类实现Runnable接口创建线程 改进(匿名内部类方式) 获取线程的名字和当前线程对象

代码生成java连接数据库的所需代码(超详细)

开始学习: round 1:(一开始学习当然还是要一步一步学习的啦,哪有什么一步登天!!!) a.准备工作:1.eclipse,mysql(这两个软件肯定要的啦,不然学什么把它们连接起来) 2.加载驱动jar包:mysql-connector-java-5.1.40.jar(我用的是这个版本,你们随意!) b.创建工程,把jar包导进工程中的lib下面,然后右击build path把jar包添加进工程中 c.创建数据库books,添加相关字段 d.创建与数据库的连接及查看数据库信息 1 impo

mac自带功能超详细介绍

mac自带的超实用的功能分享给大家,包含自带的Spotlight(聚焦) 计算器功能,预览的 PDF 压缩功能,切换同一应用的不同窗口等,让您的工作更加轻松. 1.Spotlight(聚焦) 计算器功能 点击右上角菜单栏中的聚焦按钮,或者按 command - 空格组合键,调出聚焦(说聚焦怎么那么别扭呢,还是喜欢叫 Spotlight ),输入你要算的数即可.比特意打开计算器 App 要方便一些.(文章来源macdown.com) 2.预览的 PDF 压缩功能 用 Mac 自带的预览 App 打

java的反射机制,看完这篇轻松应对高级框架(超详细总结)

导读:很多优秀的高级框架都是通过反射完成的,反射的重要性,由此可见一斑.反射机制可以使得程序更加灵活,只有学习好反射的基础语法,这样才能自己写出优秀的框架.好了一起打卡学习吧,别忘记了素质三连哦! 往期精彩回放:一文搞定Java的输入输出流等常见流 java多线程编程从入门到卓越(超详细总结) 一文搞定Java集合类,你还在为Java集合类而烦恼吗? 文章目录 1.反射机制概述 2.通过反射机制实例化对象 3.反射Field(属性)获取字节码 4.反射Mothod(方法) 5.反射Constru

Java调用免费的WebService示例【天气预报】【国内手机号码归属地查询】

1.免费的WebService地址:http://www.webxml.com.cn/zh_cn/index.aspx 提供了例如:天气预报,手机归属地查询等很多Web服务. 2.调用天气预报服务示例: 使用JDK自带的wsimport命令生成客户端代码: wsimport -keep http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl 发现抛出如下异常: 后来在网上找到了http://blog.sina.com.cn/

纯 Java 开发 WebService 调用测试工具(wsCaller.jar)

注:本文来自hacpai.com:Tanken的<纯 Java 开发 WebService 调用测试工具(wsCaller.jar)>的文章 基于 Java 开发的 WebService 测试工具,不像上文的 iWallpaper.jar 只能实现在 Windows 系统下的功能,此工具发挥了 Java 跨平台的优势,亲测可在 Windows.Mac OS 及 Linux 下运行及使用.简单易用的专门用于测试 WebService 的小工具,在 2003 版 wsCaller.jar 的基础上

java实现WebService 以及客户端不同的调用方式

java 实现WebService 以及不同的调用方式 webservice:    就是应用程序之间跨语言的调用    wwww.webxml.com.cn    1.xml    2.    wsdl: webservice description language web服务描述语言        通过xml格式说明调用的地址方法如何调用,可以看错webservice的说明书        3.soap simple object access protoacl (简单对象访问协议)