上述只是模拟了一下服务端和本地端的通信,但是却没有涉及到真正获取其他网站信息的操作。现在我们通过一个案例,是关于获取天气预报,来实际掌握该项技能。

原本可以使用MyEclipse自动生成客户端,然后很简单的进行调用就可以了,不过,在建立的过程中,却出现了如下图所示的问题:

图2.3.1构建web Service client

是因为MyEclipse无法解析标签,这个是什么原因,我们可以看一下服务商提供的WSDL的文档,很容易发现:

xmlns:s=http://www.w3.org/2001/XMLSchema

这句话正是MyEclipse无法解析的,因为这个原因,我们只能通过命令行建立,并且在构建的过程中还得绑定这个xsd文件。

其实这个文件是jdk1.4的内容,java已经摒弃没有再使用了,也就造成了其无法通过验证的原因。

我们现在MyEclipse中构建一个java项目(因为我们只是为了测试,并不一定需要Web工程):

图2.3.2构建java项目

图2.3.3添加JAX-WS支持

之后,打开该项目,进入src目录,通过cmd构建命令:

wsimport   -p   com.test.client

-keep   http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?WSDL

-b   http://www.w3.org/2001/XMLSchema.xsd

注意:必须一次性写完。

-p:package

-keep:wsdl文档的url

-b:缺少的schema文件

图2.3.4进入项目的目录src

图2.3.5解析wsdl文档

图2.3.6解析出现警告完成编译

注释:解析出现警告,这是正常的情况,不过我们已经将缺失的添加了,所以不必在这方面纠结了。而看一下我们的项目,refresh一下MyEclipse中的项目:

图2.3.7文件结构

我们可以看到,它自动创建了com.test.client包,在包内,有一系列自动生成的java类。至此,我们的客户端已经创建完毕。

现在我们添加一个测试类:WebWeatherClient

package com.test.client;

public class WebWeatherClient {
public static void main(String []args){
WeatherWebService service = new WeatherWebService();
WeatherWebServiceSoap soap = service.getWeatherWebServiceSoap();
System.out.println(soap.getWeatherbyCityName("杭州").getString());
}
}

代码段2.3.1测试类。

现在让我们运行一下:

可以看到我们已经拿到杭州这个城市的天气信息了。

Web Service实例——天气预报的更多相关文章

  1. Web Service学习-CXF开发Web Service实例demo(一)

    Web Service是什么? Web Service不是框架.更甚至不是一种技术. 而是一种跨平台,跨语言的规范 Web Service解决什么问题: 为了解决不同平台,不同语言所编写的应用之间怎样 ...

  2. web service实例

    一.准备工作(以下为本实例使用工具) 1.MyEclipse10.7.1 2.JDK 1.6.0_22 二.创建服务端 1.创建[Web Service Project],命名为[TheService ...

  3. Web Service 实例基于Socket创建Web服务

    ServerSocket服务器端代码如下: public static void main(String[] args) throws IOException { // 1:建立服务器端的tcp so ...

  4. Android开发之使用Web Service进行网络编程

    使用Web Service进行网络编程 Android应用通常都是执行在手机平台上.手机系统的硬件资源是有限的,无论是存储能力还是计算能力都有限.在Android系统上开发.执行一些单用户.小型应用是 ...

  5. 关于WEB Service&WCF&WebApi实现身份验证之WEB Service篇

    在这个WEB API横行的时代,讲WEB Service技术却实显得有些过时了,过时的技术并不代表无用武之地,有些地方也还是可以继续用他的,我之所以会讲解WEB Service,源于我最近面试时被问到 ...

  6. C# 实现身份验证之WEB Service篇

    在这个WEB API横行的时代,讲WEB Service技术却实显得有些过时了,过时的技术并不代表无用武之地,有些地方也还是可以继续用他的,我之所以会讲解WEB Service,源于我最近面试时被问到 ...

  7. Web Service简介与开发实例

    简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的 ...

  8. 【转】Web Service单元测试工具实例介绍之SoapUI

    转自:http://blog.csdn.net/oracle_microsoft/article/details/5689585 SoapUI 是当前比较简单实用的开源Web Service 测试工具 ...

  9. 常用Web Service汇总(天气预报、时刻表等)

      现成的Web Service中有很多很好用的,比如天气预报,IP地址搜索,火车时刻表等等.本文汇总的一些常用Web Service,希望对大家有所帮助. AD: ================= ...

随机推荐

  1. 导入旧版本Android项目时的“Unable to resolve target ‘android

    在Ecplise + ATD + Android SDK的开发中,导入旧版本的Android项目时,往往会出现类似的如下错误 Error:Unable to resolve target 'andro ...

  2. hdu 4454 Stealing a Cake

    简单的计算几何: 可以把0-2*pi分成几千份,然后找出最小的: 也可以用三分: #include<cstdio> #include<cmath> #include<al ...

  3. Ubuntu修改语言环境为英文

    转自把语言环境变量改为英文 将Ubuntu系统语言环境改为英文的en_US.UTF-8 查看当前系统语言环境 locale 编辑配置文件,将zh_US.UTF-8改为en_US.UTF-8,zh改为e ...

  4. 【UVA 11383】 Golden Tiger Claw (KM算法副产物)

    Omi, Raymondo, Clay and Kimiko are on new adventure- in search of new Shen Gong Wu. But EvilBoy Geni ...

  5. 李洪强iOS开发Swift篇—04_运算符

    李洪强iOS开发Swift篇—04_运算符 一.运算符 1.Swift所支持的部分运算符有以下一些 赋值运算符:= 复合赋值运算符:+=.-= 算术运算符:+.-.*./ 求余运算符:% 自增.自减运 ...

  6. 最全的微软msdn原版windows系统镜像和office下载地址集锦

    随着windows的发展,越来越多的人都热衷于微软的原版系统下载了,相比之前的版本比如winxp版本,windows vista/win7/win8/win8.1/win10后来的版本在安装方面也比较 ...

  7. Exception Handling Statements (C# Reference)

    Exception Handling Statements (C# Reference) C# provides built-in support for handling anomalous sit ...

  8. C++ Primer 随笔 Chapter 4 数组和指针

    1.数组:数组是由类型名.标识符和维数组成的符合数据类型,类型名规定了存放在数组中的元素类型,维数规定数组中包含元素的个数而标识符就是数组的名称.例如: int  arr[10]; 其中 int 是类 ...

  9. POJ ---2531

    Network Saboteur Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 8751   Accepted: 4070 ...

  10. extjs动态树 动态grid 动态列

    由于项目需要做一个动态的extjs树.列等等,简而言之,就是一个都是动态的加载功能, 自己琢磨了半天,查各种资料,弄了将近两个星期,终于做出来了 首先,想看表结构,我的这个功能需要主从两张表来支持 代 ...