黑马程序员webservice笔记.doc

上传人:h**** 文档编号:119306 上传时间:2018-07-08 格式:DOC 页数:74 大小:6.33MB
下载 相关 举报
黑马程序员webservice笔记.doc_第1页
第1页 / 共74页
黑马程序员webservice笔记.doc_第2页
第2页 / 共74页
黑马程序员webservice笔记.doc_第3页
第3页 / 共74页
黑马程序员webservice笔记.doc_第4页
第4页 / 共74页
黑马程序员webservice笔记.doc_第5页
第5页 / 共74页
点击查看更多>>
资源描述

1、 黑马程序员 Webservice 笔记 一: Webservice 第一天 1.1: webservice介绍 大家 提出问题: 1.1.1 学习目标 什么是 WebService? 它能做什么 ? 为什么要学习 WebService? 学习 WebService 要达到什么目的? 会做?会说?还是一种思想? 学会 使用 JAX-WS 开发 webservice 学会看懂和使用 wsdl 说明书 知道什么是 soap 协议 ( webservice 的生活中的例子: http:/ 便民查询网站的设计思想: 1.1.2 webservice 的作用: WebService,顾名思义就是基于 W

2、eb 的服务。它使用 Web(HTTP)方式,接收和响应外 部系统的某种请求。从而实现远程调用 . 我们可以调用互联网上查询天气信息 Web 服务,然后将它嵌入到我们的程序 (C/S 或 B/S 程序 )当中来,当用户从我们的网点看到天气信息时,他会认为我们为他提供了很多的信息服务,但其实我们什么也没有做, 只是简单了调用了一下别人服务器上的一段 代码而已 。 学习 WebSerice可以将你的服务 (一段代码 )发布到互联网上让别人去调用 ,也可以调用别 人机器上发布的 WebService,就像使用自己的代码一样 .。 webservice 可以实现跨平台远程调用,从而实现异构程序之间的通

3、信,特定需求下可以实现远程数据共享、软件重用、分布式程序集成。 webservice 即 web 服务, 它是一种跨编程语言和跨操作系统平台的远程调用技术 即跨平台远程调用技术。 它 采用标准 SOAP 协议 (Simple Object Access Protocol) , 协议传输 webservice 数据,是 w3c 标准 。 xml 和 XSD(XML Schema Datatypes)是 webservice 的基础,是 w3c 标准 , 采用 wsdl 作为描述语言即 webservice 使用说明书 webservice 的优缺点: 优点: 1、采用 xml 支持跨平台远程调用

4、。 2、基于 http 的 soap 协议,可跨越防火墙。 3、支持面向对象开发。 4、有利于软件和数据重用,实现松耦合。 缺点: 随着 soap 协议的完善, soap 协议增加了许多内容,这样就导致了使用 soap 协议去完成简单的数据传输的效率不高,对接口要求 不严格的情况下直接用 http 传输自定义数据内容更快捷,例如第三方支付公司的支持接口。 1.2: webservice的原理( socket) 使用 socket 实现远程调用 客户端和服务端的调用 代码: 1.2.1 服务端代码: 1.2.2 客户端代码: 总结: webservice 的底层原理,就是 socket 1.3:

5、 jdk发布 webservice服务 使用 JAX-WS 开发 webservice JAX-WS 的全称为 Java API for XML-Based Webservices ,从 java5 开始支持JAX-WS2.0 版本, Jdk1.6.0_13 以后的版本支持 2.1 版本, jdk1.7 支持 2.2 版本,本教程我们使用 jdk1.7.0_07 开发。 那么如何才可以发布一个 WebService 呢? 1: 用 Jdk1.6.0_13 以后的版本 发布一个 WebService 服务 , 并通过地址栏查看它的 wsdl 文档 . 2: 通过 wsimport 生成客户端 代

6、码 ,调用并查看运行的结果 .(学会如何调用是我们的重点 ). 3: 从互联网上获取一个 WebService 网络公开的服务, 并使用 工具生成客户端, 调用并 查看结果。 测试代码 包括服务端和客户端的开发 1.3.1 服务端开发: 代码: 其中: 1、 编写 SEI(Service Endpoint Interface),为了开发方便我们用 java 类代替接口加实现类 的方式。 2、 java 类中至少要有一个非静态的公开方法需要作为 webservice 服务方法。 3、 public class WeatherServer 上边要加上 WebService,表示 webservic

7、e 的发布类 。 4、 使用 Endpoint.publish()方法 发布服务 。 1.3.2 学会看懂 使用说明书( wsdl) 1、 在地址栏输入 (注意后面的参数 ?wsdl) http:/127.0.0.1:8888/weather?wsdl 2、 这里注意 目前不是访问 webService,只是获取一个用于描述 WebService 的说明文件 ,即 :wsdl 文件 ,我们需要看 懂 wsdl 的文件,这样就知道服务端究竟发布什么样的服务,提供什么样的方法 ,需要传递什么类型的参数,方法的返回值类型是什么等。 . 3、 wsdl- 即 WebServiceDescription

8、Language,是以 XML 文件形式来描述 WebService 的 ”说明书 ”,有了说明书 ,我们才可以知道如何使用或是调 用这个服务。 这里从下向上看: 其中: 1: WeatherServerService 为视图服务 2: WeatherServerPort 为调用的端口,即 getWeatherServerPort()方法 3: WeatherServer 为接口,接口 中提供一个 queryWeather()的方法 1.3.3 客户端开发: wsimport 是 jdk 自带的 ,可以根据 wsdl文档生成客户端调用代码的工具 .当然 ,无论服务器端的 WebService

9、是用什么语言写的 ,都将在客户端生成 Java 代码 .服务器端用什么 语言编 写的并不重要 . wsimport.exe 位于 JAVA_HOMEbin 目录下 . 例如:在 cmd 的窗口下执行 wsimport 可以看到 常用参数为 : -d - 将生成 .class 文件。默认参数。 -s - 将生成 .java 文件。 -p -将生成的类,放于指定的包下。 (wsdlurl) - http:/server:port/service?wsdl,必须的参数。 示例: wsimport 其他参数说明 ,我们经常使用的参数为 -d,-s,-p -d将会生成 .class 文件 . 示例 :w

10、simport d . http:/127.0.0.1:8888/weather?wsdl -s将会生成 .java 文件 . 示例 :wsimport s . http:/127.0.0.1:8888/weather?wsdl -p将生成的文件 (.java 或是 .class 修改成指定的包名 ) 示例 :wsimport -s . -p cn.itcast http:/127.0.0.1:8888/weather?wsdl 示例: C:/ wsimport s . http:/127.0.0.1:8888/weather?wsdl 注意: -s 不能分开, -s 后面有个小点 在 cmd

11、 的窗口执行: 在 D 盘 ws 的文件夹下看到 客户端生成的 java 文件 : 将 .java 的文件整个包拷贝到客户端的工程下,然后使用 WeatherClient 的客户端测试,测试代码如下: 其中 WeatherServiceService 为服务器类 其中 WeatherServer 为接口类 其中 getWeatherServerPort 为端口类型 其中 queryWeather 为调用的方法 这四个 参数 在 wsdl 的使用说明书中都会看到。 通 常 用 于 描 述 服 务 的 名 称 , 即 new WeatherServerService ();-通常称为服务名。 在

12、元素内的 即 new WeatherServerService ().getWeatherServerPort (); - 通常称为服务端口。 是服务接口名。即: WeatherServer weatherServer = new WeatherServerService ().getWeatherServerPort (); 在 myeclipse 上查看 .wsdl 文件:如图: 可视化的 webservice 1.4:网络练习 对于用户而言 ,用户是永远也感受不到你的程序具体是如何获取天气预报信息的 .但他的确通过你的程序获取了天气信息 ,这对用户就已经足够了 .但其实 ,对于程序员来说

13、 ,程序员本身并 没有做很多的工作 ,只是简单的调用了气象部门对外发布的服务从而获取了天气信息 . Webservice 的网络网址: 1.4.1:手机归属地 1: 下面实现一个手机号归属地的查询:大家可以回家试下: ( 1):在 E 盘下,写一个 phone.wsdl 文件 (从资料 webservice提供资料 网上手机 +天气 中获取) ,内容就是网络发布的使用说明书 ( 2): ,生成客户端代码 注意:使用 jaxws 提供的 wsimport 生成客户端 , 这里先强调 jaxws 只能编译 soap1.1 的协议,不能编译 soap1.2 的协议 的代码。 ( 3):客户端调用代码 1.4.2:天气预报 下面实现一个天气预报的查询: ( 1):在 E 盘下,写一个 weather.wsdl 文件 (从资料 webservice提供资料 网上手机 +天气 中获取) ,内容就是网络发布的使用说明书 ( 2): ,生成客户端代码 注意:使用 jaxws 提供的 wsimport 生成客户端 , 这里先强调 jaxws 只能编译 soap1.1 的协议,不能编译 soap1.2 的协议 的代码。 ( 3):客户端调用代码

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。