黑马程序员webservice笔记

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

黑马程序员Webservice笔记一:Webservice第一天1.1:webservice介绍大家提出问题:1.1.1学习目标什么是WebService?它能做什么?为什么要学习WebService?学习WebService要达到什么目的?•会做?会说?还是一种思想?学会使用JAX-WS开发webservice学会看懂和使用wsdl说明书知道什么是soap协议(webservice的生活中的例子:(便民查询网站))便民查询网站的设计思想:1.1.2webservice的作用:WebService,顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用.我们可以调用互联网上查询天气信息Web服务,然后将它嵌入到我们的程序(C/S或B/S程序)当中来,当用户从我们的网点看到天气信息时,他会认为我们为他提供了很多的信息服务,但其实我们什么也没有做,只是简单了调用了一下别人服务器上的一段代码而已。学习WebSerice可以将你的服务(一段代码)发布到互联网上让别人去调用,也可以调用别人机器上发布的WebService,就像使用自己的代码一样.。webservice可以实现跨平台远程调用,从而实现异构程序之间的通信,特定需求下可以实现远程数据共享、软件重用、分布式程序集成。webservice即web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术即跨平台远程调用技术。它采用标准SOAP协议(SimpleObjectAccessProtocol),协议传输webservice数据,是w3c标准。xml和XSD(XMLSchemaDatatypes)是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的全称为JavaAPIforXML-BasedWebservices,从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(ServiceEndpointInterface),为了开发方便我们用java类代替接口加实现类的方式。2、java类中至少要有一个非静态的公开方法需要作为webservice服务方法。3、publicclassWeatherServer上边要加上@WebService,表示webservice的发布类。4、使用Endpoint.publish()方法发布服务。1.3.2学会看懂使用说明书(wsdl)1、在地址栏输入(注意后面的参数?wsdl)、这里注意目前不是访问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_HOME\bin目录下.例如:在cmd的窗口下执行wsimport可以看到常用参数为:•-d目录-将生成.class文件。默认参数。•-s目录-将生成.java文件。•-p生成的新包名-将生成的类,放于指定的包下。•(wsdlurl)-,必须的参数。示例:wsimport其他参数说明,我们经常使用的参数为-d,-s,-p-d目录将会生成.class文件.示例:wsimport–d.目录将会生成.java文件.示例:wsimport–s.包名将生成的文件(.java或是.class修改成指定的包名)示例:wsimport-s.-pcn.itcast示例:C:/wsimport–s.注意:-s不能分开,-s后面有个小点在cmd的窗口执行:在D盘ws的文件夹下看到客户端生成的java文件:将.java的文件整个包拷贝到客户端的工程下,然后使用WeatherClient的客户端测试,测试代码如下:其中WeatherServiceService为服务器类其中WeatherServer为接口类其中getWeatherServerPort为端口类型其中queryWeather为调用的方法这四个参数在wsdl的使用说明书中都会看到。servicename=”WeatherServerService”通常用于描述服务的名称,即newWeatherServerService();-通常称为服务名。在Service元素内的portname=”WeatherServerPort”即newWeatherServerService().getWeatherServerPort();-通常称为服务端口。portTypename=”WeatherServer”是服务接口名。即:WeatherServerweatherServer=newWeatherServerService().getWeatherServerPort();在myeclipse上查看.wsdl文件:如图:可视化的webservice1.4:网络练习对于用户而言,用户是永远也感受不到你的程序具体是如何获取天气预报信息的.但他的确通过你的程序获取了天气信息,这对用户就已经足够了.但其实,对于程序员来说,程序员本身并没有做很多的工作,只是简单的调用了气象部门对外发布的服务从而获取了天气信息.Webservice的网络网址::手机归属地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):客户端调用代码1.5:webservice的soap协议webService只采用HTTPPOST方式传输数据,不使用GET方式;httppost的contentType为•application/x-为•text/xml;charset=UTF-8—soap1.1•application/soap+xml—soap1.2soap1.1和soap1.2的对比:soap1.1请求方式,post请求ContentType的类型:text/xml;charset=utf-8传输数据:传输的XML格式的数据soap1.2请求方式,post请求ContentType的类型:application/soap+xml传输数据:传输的XML格式的数据WebService从数据传输格式上作了限定。WebService所使用的数据均是基于XML格式的。目前标准的WebService在数据格式上主要采用SOAP协议。SOAP协议实际上就是一种基于XML编码规范的文本协议。SOAP是一种网络通信协议SOAP即SimpleObjectAccessProtocol,即简易对象访问协议SOAP用于跨平台应用程序之间的通信SOAP被设计用来通过因特网(http)进行通信SOAP=HTTP+XML,其实就是通过HTTP发xml数据SOAP很简单并可扩展支持面向对象SOAP允许您跨越防火墙SOAP将被作为W3C标准来发展1.6:使用myeclipse的WebServiceExplorer的查看webservice发送和接收的数据(XML)(1)选择:(2)输入使用说明书的地址(3)点击【go】,(4)点击queryWeather()的方法,填写参数【北京】,点击【go】,可以查询数据。(5)查询的结果为:(6)点击【Source】可以看到webservice传递是XML格式的数据,但是由于没有使用客户端,所以我们无法看到http请求,那该怎么办呢?(7)结论:使用是可以通过webservice调用远程服务器的,但是对于工具,只支持soap1.1,不支持soap1.2,后续我们会测试这个工具在soap1.2上的使用。http:请求方式:get或postget:请求:ContentType=text/html;charset=utf-8响应:ContentType=text/html;charset=utf-8post:请求:ContentType=application/x-响应:ContentType=text/html;charset=utf-8soap协议无法用浏览器监视,因为webservice没有通过浏览器使用Myeclipse的WebServiceExplorer

1 / 74
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功