黑马程序员webservice笔记_第1页
黑马程序员webservice笔记_第2页
黑马程序员webservice笔记_第3页
黑马程序员webservice笔记_第4页
黑马程序员webservice笔记_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

黑马程序员 Webservice 笔记一:Webservice 第一天1.1:webservice 介绍大家提出问题:1.1.1 学习目标 什么是 WebService? 它能做什么? 为什么要学习 WebService? 学习 WebService 要达到什么目的? 会做?会说?还是一种思想? 学会使用 JAX-WS 开发 webservice 学会看懂和使用 wsdl 说明书 知道什么是 soap 协议(webservice 的生活中的例子:/ (便民查询网站) )便民查询网站的设计思想:1.1.2 webservice 的作用:WebService,顾名思义就是基于 Web 的服务。它使用 Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用. 我们可以调用互联网上查询天气信息 Web 服务,然后将它嵌入到我们的程序 (C/S 或B/S程序)当中来,当用户从我们的网点看到天气信息时,他会认为我们为他提供了很多的信息服务,但其实我们什么也没有做,只是简单了调用了一下别人服务器上的一段代码而已。学习 WebSerice 可以将你的服务( 一段代码)发布到互联网上让别人去调用,也可以调用别人机器上发布的 WebService,就像使用自己的代码一样.。webservice 可以实现跨平台远程调用,从而实现异构程序之间的通信,特定需求下可以实现远程数据共享、软件重用、分布式程序集成。webservice 即 web 服务,它是一种跨编程语言和跨操作系统平台的远程调用技术即跨平台远程调用技术。它采用标准 SOAP 协议(Simple Object Access Protocol) ,协议传输 webservice 数据,是 w3c 标准。xml 和 XSD(XML Schema Datatypes)是 webservice 的基础,是 w3c 标准,采用 wsdl 作为描述语言即 webservice 使用说明书webservice 的优缺点:优点:1、采用 xml 支持跨平台远程调用。2、基于 http 的 soap 协议,可跨越防火墙。3、支持面向对象开发。4、有利于软件和数据重用,实现松耦合。缺点:随着 soap 协议的完善,soap 协议增加了许多内容,这样就导致了使用 soap 协议去完成简单的数据传输的效率不高,对接口要求不严格的情况下直接用 http 传输自定义数据内容更快捷,例如第三方支付公司的支持接口。1.2:webservice 的原理(socket )使用 socket 实现远程调用客户端和服务端的调用代码:1.2.1 服务端代码:1.2.2 客户端代码:总结:webservice 的底层原理,就是 socket1.3:jdk 发布 webservice 服务使用 JAX-WS 开发 webserviceJAX-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 生成客户端 代码,调用并查看运行的结果 .(学会如何调用是我们的重点).3:从互联网上获取一个 WebService 网络公开的服务,并使用工具生成客户端,调用并查看结果。测试代码包括服务端和客户端的开发1.3.1 服务端开发:代码:其中:1、编写 SEI(Service Endpoint Interface),为了开发方便我们用 java 类代替接口加实现类的方式。2、java 类中至少要有一个非静态的公开方法需要作为 webservice 服务方法。3、public class WeatherServer 上边要加上WebService ,表示 webservice 的发布类。4、使用 Endpoint.publish()方法发布服务。1.3.2 学会看懂使用说明书(wsdl)1、在地址栏输入(注意后面的参数 ?wsdl):8888/weather?wsdl 2、 这里注意目前不是访问 webService,只是获取一个用于描述 WebService 的说明文件,即:wsdl 文件,我们需要看懂 wsdl 的文件,这样就知道服务端究竟发布什么样的服务,提供什么样的方法,需要传递什么类型的参数,方法的返回值类型是什么等。.3、 wsdl- 即 WebServiceDescriptionLanguage,是以 XML 文件形式来描述 WebService 的” 说明书”,有了说明书,我们才可以知道如何使用或是调用这个服务。这里从下向上看:其中:1:WeatherServerService 为视图服务2:WeatherServerPort 为调用的端口,即 getWeatherServerPort()方法3:WeatherServer 为接口,接口中提供一个 queryWeather()的方法1.3.3 客户端开发:wsimport 是 jdk 自带的,可以根据 wsdl 文档生成客户端调用代码的工具 .当然,无论服务器端的 WebService 是用什么语言写的,都将在客户端生成 Java 代码.服务器端用什么语言编写的并不重要.wsimport.exe 位于 JAVA_HOMEbin 目录下.例如:在 cmd 的窗口下执行 wsimport 可以看到常用参数为: -d - 将生成.class 文件。默认参数。 -s - 将生成.java 文件。 -p -将生成的类,放于指定的包下。 (wsdlurl) - http:/server:port/service?wsdl,必须的参数。示例:wsimport 其他参数说明 ,我们经常使用的参数为 -d,-s,-p-d 将会生成.class 文件.示例:wsimport d . :8888/weather?wsdl-s 将会生成 .java 文件 .示例:wsimport s . :8888/weather?wsdl-p 将生成的文件(.java 或是.class 修改成指定的包名 )示例:wsimport -s . -p cn.itcast :8888/weather?wsdl示例:C:/ wsimport s . :8888/weather?wsdl注意:-s 不能分开,-s 后面有个小点在 cmd 的窗口执行:在 D 盘 ws 的文件夹下看到客户端生成的 java 文件:将.java 的文件整个包拷贝到客户端的工程下,然后使用 WeatherClient 的客户端测试,测试代码如下:其中 WeatherServiceService 为服务器类其中 WeatherServer 为接口类其中 getWeatherServerPort 为端口类型其中 queryWeather 为调用的方法这四个参数在 wsdl 的使用说明书中都会看到。 通常用于描述服务的名称,即 new WeatherServerService ();-通常称为服务名。 在元素内的即 new WeatherServerService ().getWeatherServerPort (); - 通常称为服务端口。 是服务接口名。即:WeatherServer weatherServer = new WeatherServerService ().getWeatherServerPort ();在 myeclipse 上查看.wsdl 文件:如图:可视化的 webservice1.4:网络练习对于用户而言,用户是永远也感受不到你的程序具体是如何获取天气预报信息的.但他的确通过你的程序获取了天气信息,这对用户就已经足够了.但其实,对于程序员来说,程序员本身并没有做很多的工作,只是简单的调用了气象部门对外发布的服务从而获取了天气信息.Webservice 的网络网址:1.4.1:手机归属地1:下面实现一个手机号归属地的查询:大家可以回家试下:(1):在 E 盘下,写一个 phone.wsdl 文件(从资料 webservice提供资料网上手机+天气中获取) ,内容就是网络发布的使用说明书(2): ,生成客户端代码注意:使用 jaxws 提供的 wsimport 生成客户端,这里先强调 jaxws 只能编译 soap1.1 的协议,不能编译 soap1.2 的协议的代码。(3):客户端调用代码1.4.2:天气预

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论