webservice-张孝祥ppt课件

上传人:资****亨 文档编号:145850204 上传时间:2020-09-23 格式:PPT 页数:20 大小:89.50KB
返回 下载 相关 举报
webservice-张孝祥ppt课件_第1页
第1页 / 共20页
webservice-张孝祥ppt课件_第2页
第2页 / 共20页
webservice-张孝祥ppt课件_第3页
第3页 / 共20页
webservice-张孝祥ppt课件_第4页
第4页 / 共20页
webservice-张孝祥ppt课件_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《webservice-张孝祥ppt课件》由会员分享,可在线阅读,更多相关《webservice-张孝祥ppt课件(20页珍藏版)》请在金锄头文库上搜索。

1、.,WebService专题,讲师:张孝祥,.,对每个程序员来说,没有学不会的技术,只是没有那么多的时间与精力!如果能用最少的时间学透自己想要的技术,是程序员感到最幸福的事情! 程序员要学的知识细节实在太多,程序员要把一个知识完全搞明白所走的弯路太多,一个程序员积累的知识量等到可以从容面对工作时,又发现自己的体力已经被前些年的学习和摸索掏空和耗尽了!每个程序员都在经历这样的轮回,程序员网校在想:“能否让程序员的职业生涯更长些?程序员的工作变得轻松些?” 如果要想让程序员的工作变得简单些,首先就应该让技术学习变得轻松!如果一个人把自己通过一年精心梳理出来的某个经验一针见血地用一个小时交给了其他的

2、千万人,其他人岂不节省了很多很多的宝贵时间吗?如果有很多有经验的人士都来开放、交流、共享自己的经验,程序员的工作还会那么辛苦吗? 程序员网校必将精心制作每个技术点的文字与视频教程,尽可能一针见血地讲解清楚问题的本质和最大限度地节省学习者的学习时间,让程序员把富余的时间投入到工作和生活中去,为提高程序员的生活状况尽最大努力!,程序员网校的发展理念,.,彻底征服面试官之WebService的功能(是什么),WebService是一种跨编程语言和跨操作系统平台的远程调用技术 所谓远程调用,就是一台计算机a上的一个程序可以调用到另外一台计算机b上的一个对象的方法,譬如,银联提供给商场的pos刷卡系统(

3、采用交互提问的方式来加深大家对此技术的理解)。 远程调用技术有什么用呢?商场的POS机转账调用的转账方法的代码是在银行服务器上,还是在商场的pos机上呢? 什么情况下可能用到远程调用技术呢?例如,amazon,天气预报系统,淘宝网,校内网,百度等把自己的系统服务以webservice服务的形式暴露出来,让第三方网站和程序可以调用这些服务功能,这样扩展了自己系统的市场占有率,往大的概念上吹,就是所谓的SOA应用。 所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。 除

4、了WebService外,常见的远程调用技术还有RMI(Remote method invoke)和CORBA,由于WebService的跨平台和跨编程语言特点,因此比其他两种技术应用更为广泛,但性能略低。,.,彻底征服面试官之WebService的调用原理,WebService使用SOAP协议实现跨编程语言和跨操作系统平台 WebService采用HTTP协议传输数据,采用XML格式封装数据(即XML中说明调用远程服务对象的哪个方法,传递的参数是什么,以及服务对象的返回结果是什么)。WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加

5、了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议(simple object access protocol,简单对象访问协议) 。 SOAP协议 = HTTP协议 + XML数据格式 SOAP协议是基于HTTP协议的,两者的关系就好比高速公路是基于普通公路改造的,在一条公路上加上隔离栏后就成了高速公路。 商店的服务员只要收到了钱就给客户提供货物,商店服务员不用关心客户是什么性质的人,客户也不用关心商店服务员是什么性质的人。同样, WebService客户端只要能使用HTTP协议把遵循某种格式的XML请求数据发送给WebServ

6、ice服务器, WebService服务器再通过HTTP协议返回遵循某种格式的XML结果数据就可以了,WebService客户端与服务器端不用关心对方使用的是什么编程语言。 HTTP协议和XML是被广泛使用的通用技术,各种编程语言对HTTP协议和XML这两种技术都提供了很好的支持,WebService客户端与服务器端使用什么编程语言都可以完成SOAP的功能,所以,WebService很容易实现跨编程语言,跨编程语言自然也就跨了操作系统平台。,.,彻底征服面试官之 WebService调用之前的工作,WSDL文件 好比我们去商店买东西,首先要知道商店里有什么东西可买,然后再来购买,商家的做法就是

7、张贴广告海报。 WebService客户端要调用一个WebService服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方法可以调用,所以,WebService务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,服务是什么(服务中有哪些方法,方法接受的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。 WSDL(webservice description language)是基于XML格式的,它是WebService客户端和服务器端都能理解的标准格式,其中描述的信息可以分为what,where,how等部分! WSDL文件保存在

8、Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址: 注册到UDDI服务器,以便被人查找 直接告诉给客户端调用者,例如,在自己网站给出信息或邮件告诉。,.,彻底征服面试官之WebService的工作过程,UDDI注册中心,天气WebService,WebService消费者,1 创建Web Service, 定义WSDL; 部署Web Service, URI标识;,股票WebService,2 把自己注册到UDDI via SOAP,WebS

9、ervice消费者,3 查找Web Service via SOAP,4 使用Web Service via SOAP,WebService提供者,(替代2和3)直接告知WSDL的URL,.,彻底征服面试官之WebService的开发应用,WebService开发可以分为服务器端开发和客户端开发两个方面: 把公司内部系统的业务方法发布成WebService服务,供远程合作单位和个人调用。(借助一些WebService框架可以很轻松地把自己的业务对象发布成WebService服务,Java方面的典型WebService框架包括:axis,xfire,cxf等,java ee服务器通常也支持发布W

10、ebService服务,例如JBoss。这框架应用不是学习的重点,看看相关的技术手册都很轻松地掌握,关键还是要了解WebService的工作原理。) 调用别人发布的WebService服务,大多数人从事的开发都属于这个方面,例如,调用天气预报WebService服务。(使用厂商的WSDL2Java之类的工具生成静态调用的代理类代码;使用厂商提供的客户端编程API类;使用SUN公司早期标准的jax-rpc开发包;使用SUN公司最新标准的jax-ws开发包。),.,彻底征服面试官之WebService的客户端编程原理,代理图 我们给这各类WebService客户端API传递wsdl文件的url地址

11、,这些API就会创建出底层的代理类,我调用这些代理,就可以访问到webservice服务。代理类把客户端的方法调用变成soap格式的请求数据再通过HTTP协议发出去,并把接收到的soap数据变成返回值返回。,.,WebService客户端编程工具生成静态代理类方式,xfire的WSGen 还需要额外导入ant.jar包 axis的WSDL2java 写批处理或直接在eclipse中运行这个类 jdk6的wsimport cxf的,.,WebService客户端编程动态代理类方式,使用jax-rpc 第一步是创建xxx.Service实例对象 调用getPort返回代理,客户端的接口要实现rem

12、ote接口,因为客户端代理是用java技术生成的,java生成的远程调用的代理必须实现remote接口,即我实现的代理靠的是java的remote技术。 使用jax-ws 第一步就是创建出javax.xml.ws.Service实例对象,.,WebService客户端编程动态方法调用(DII),使用jax-rpc 第一步是创建xxx.Service实例对象 调用getCall返回Call对象,call的invoke实现动态调用。 使用jax-ws 第一步就是创建出javax.xml.ws.Service实例对象,.,WebService客户端编程用Socket编程方式调用,.,彻底征服面试官之

13、WebService框架的底层实现原理,技术实现原理: 各类WebService框架的本质就是一个大大的Servlet,当远程调用客户端给它通过http协议发送过来soap格式的请求数据时,它分析这个数据,就知道要调用哪个java类的哪个方法,于是去查找或创建这个对象,并调用其方法,再把方法返回的结果包装成soap格式的数据,通过http响应消息回给客户端。,.,Axis,步骤: 1.首先直接把axis包中webapps目录下的axis例子程序复制到tomcat中,就配置好了axis的服务器端环境 2.写好一个服务类,将.java复制一份,改名为jws后介绍一下jws的即时发布技术。 3.读帮

14、助文档,参照docs目录下的userguide目下中的第三个例子,获得一份wsdd文件,然后进行修改。 4.使用adminclient进行发布,需要使用set classpath=%classpath%;和拖动的方式逐一加入各个jar包,更好的办法是编写一个批处理,设置axis_lib=,然后设置classpath,然后用%1 %2 %3 %4等执行adminclient。更好的方式是将所有jar包导入到eclispe中,再eclipse中运行adminclient将更简捷) 5.给大家看发布后的结果,也就是生成了server-config.wsdd文件,要重新启动应用程序,才会生效。 6.直

15、接访问axis的核心Servlet映射的URL地址(去掉*),可以看到部署的所有服务,看wsdl文件,说明wsdl文件的作用。 7.使用jdk6自带的wsimport生成客户端,报告错误,然后修改server-config.wsdd文件,在service中增加style=document属性,重启动程序再次执行,成功搞定。比较两次的wsdl文件不相同。演示将wsdl保存到本地也是可以的,说清楚只要得到wsdl文件或其url地址,都可以知道对方的服务如何调用了。,.,xfire,步骤: 1.参照手册做第一个webservice服务器端例子,可以用config初始化参数来修改配置文件的位置,文件路径是相对当前web.xml文件的位置。 1)编写服务类 2)将服务类注册和部署成WebService 2.针对xfire项目,访问/mywebapp/services,可以验证xfire是否配置正常。,.,jax-ws ri,.,jboss发布webservice,.,Myeclipse创建webservice程序,.,综合应用,.,结束语,热烈欢迎各软件公司到传智播客公司预定和招聘软件开发人才! 谢谢!,

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号