zoukankan      html  css  js  c++  java
  • 利用java webservice调用天气预报实践

    最近要和其他业务系统进行数据交换,选择了webservice方案,于是查了一下网上的用法。首先是做一个天气的查询例子,看着挺简单,可实际动手做起来发现坑很多,费了半天劲终于调通了,于是记录下来。

    1,在eclipse里新建一个java项目,在src里添加一个文件,命名为WeatherWebService.wsdl。

     

    2,在浏览器中访问地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl这个是天气预报的webservice描述地址,复制里面的内容,注意从<wsdl:definitions 标签开始复制一直到<wsdl:definitions标签结束。粘贴到java项目的文件WeatherWebService.wsdl中。

    3,此时重点来了,选中文件,右键选择web service-generate client会弹出以下窗口

     

    如果没有错误提示直接点击Finish按钮即可完成引用。但往往是会有一个错误提示无法完成

    4 这时候就会自动生成引用的相关代码:

     

    5 这时候就可以写一个调用的测试代码了,新建一个测试类,在main函数里编写一个得到北京天气的测试代码。

    package cn.com.test;
    import java.rmi.RemoteException;
    import javax.xml.rpc.ServiceException;
    import cn.com.WebXml.WeatherWebService;
    import cn.com.WebXml.WeatherWebServiceLocator;
    import cn.com.WebXml.WeatherWebServiceSoap;
    public class TestWeathers {

       public static void main(String[] args) {
       WeatherWebService service1=new WeatherWebServiceLocator();
       WeatherWebServiceSoap serviceSoap = null;
        try {
           serviceSoap = service1.getWeatherWebServiceSoap();
        } catch (ServiceException e) {
           e.printStackTrace();
       }
        String[] cityweather = null;
        String[] city1={"北京","上海","深圳","广州"};
         try {
             cityweather = serviceSoap.getWeatherbyCityName("北京");//不输入默认为上海市
         } catch (RemoteException e) {
             e.printStackTrace();
        }
        for (String s : cityweather) {
            System.out.println(s);
         }
      }
    }

    结果:

     

  • 相关阅读:
    JS中的call()和apply()方法
    小鲜肉初学JS做得仿京东淘宝竖排二级导航
    OnClientClick="return confirm('确定要删除吗?')"
    sql主键的一点重要理解
    形态学对象的提取与屏蔽 (开操作和闭操作)
    水平竖直线及矩形方式提取结构
    形态学图像的膨胀与腐蚀
    自定义卷积核
    直线、矩形、圆、椭圆、文字等绘制
    霍夫变换圆形检测
  • 原文地址:https://www.cnblogs.com/zhaosq/p/9792354.html
Copyright © 2011-2022 走看看