webservice学习二之调用天气的webservice及wsdl分析

我们首先要得到天气预报的webservice文档,天气预报的webservice接口是免费的

这个是webservcie的文档

http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

然后我们按照第一篇蚊帐中的,测试一下wsdl文档能不能用,我们发现报错,当webservice是用.net写的,这个时候用java调用.net就会出问题

webservice学习二之调用天气的webservice及wsdl分析_第1张图片

这是我们需要将对应的将wsdl的文件保存到本地,然后修改wsdl文件,这样方式来生成代码

上面的连接,在浏览器中右键,然后查看源文件,然后将得到的数据 粘贴我们的项目中

webservice学习二之调用天气的webservice及wsdl分析_第2张图片

webservice学习二之调用天气的webservice及wsdl分析_第3张图片

我们需要修改wsdl文档中的替换成

然后生成客户端代码

webservice学习二之调用天气的webservice及wsdl分析_第4张图片

生成代码后,我们去wsdl文件中找到service name,我们利用这个类进行生成代码

webservice学习二之调用天气的webservice及wsdl分析_第5张图片

这个类就是工厂类

然后我们测试

package com.weather_client.dw_day01;

import java.util.List;

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

public class test {
	
	public static void main(String[] args) {
		WeatherWebService weatherService = new WeatherWebService();
		WeatherWebServiceSoap weatherWebServiceSoap = weatherService.getWeatherWebServiceSoap();
		ArrayOfString weather = weatherWebServiceSoap.getWeatherbyCityName("济南");
		List list = weather.getString();
		System.out.println(list);
	}

}

做手机归属地查询的同理

以上都是通过jdk来做webservice 

下面我们通过用cxf来做webservice:

首先需要jar包去:http://cxf.apache.org/download.html 下载cxf的jar包,解压找到lib把lib下的所有的jar复制到项目中(注意:在lib下面有个文件不是jar包)然后对jar包进行编译

我们把第一篇文章中的service 代码copy一份,修改端口为8888,然后我们运行一下看是否正常

webservice学习二之调用天气的webservice及wsdl分析_第6张图片

然后去查看wdsl文件

webservice学习二之调用天气的webservice及wsdl分析_第7张图片

webservice学习二之调用天气的webservice及wsdl分析_第8张图片

wsdl文档的格式:每个文件的格式都有下面这几个结构

webservice学习二之调用天气的webservice及wsdl分析_第9张图片

types中定义约束,message中有请求的消息和发送的消息的结构

portType 是我们的接口,service是我们提供的服务也是对应的工厂,我们可以通过工厂得到对应的类

,bing是将我们服务和接口绑定。

下面我们建对应的客户端,将对应的wsdl文件放到客户端对应的项目中

然后我们利用wsdl文件生成对应的客户端代码,这次我们不用jdk的中的工具去生成客户端代码,我们用cxf来的批处理工具来生成代码,我们需要将对应的批处理文件,加入到环境变量中

webservice学习二之调用天气的webservice及wsdl分析_第10张图片

webservice学习二之调用天气的webservice及wsdl分析_第11张图片

然后再追加到path中

webservice学习二之调用天气的webservice及wsdl分析_第12张图片

深入wsdl文档分析:

webservice学习二之调用天气的webservice及wsdl分析_第13张图片

webservice学习二之调用天气的webservice及wsdl分析_第14张图片

以上对应的发出的请求和回应

下面是message标签分析

webservice学习二之调用天气的webservice及wsdl分析_第15张图片

下面是SEI的定义,即接口的定义

webservice学习二之调用天气的webservice及wsdl分析_第16张图片

下面是SEI的具体实现

webservice学习二之调用天气的webservice及wsdl分析_第17张图片

发布service

webservice学习二之调用天气的webservice及wsdl分析_第18张图片

工厂类下面有很多入口(即很多的SEI的实现),SEI 下面是对应的是实现类

webservice学习二之调用天气的webservice及wsdl分析_第19张图片

cxf的数据类型有哪些

webservice学习二之调用天气的webservice及wsdl分析_第20张图片

 

 

你可能感兴趣的:(sebservice)