您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 第16讲-SOAP与CXF开发WebService
使用XML企业应用开发第五卷:XML和WebService服务简单对象访问协议SOAP与CXF开发WebService使用XML企业应用开发2回顾了解ApacheAxis简介熟悉Axis应用模型掌握安装Axis掌握运用Axis发布Web服务了解取消Web服务了解Axis2使用XML企业应用开发3目标了解SOAP概念理解SOAP消息的结构论述SOAP的优点了解SOAP的实现熟悉CXF的下载和使用掌握使用CXF开发WebService掌握使用动态客户端访问WebService使用XML企业应用开发4SOAP简介是为了解决互联网中分布式计算所存在的互操作性问题而出现的。采用:HTTP和XML①HTTP用于SOAP消息的传输②XML是SOAP的编码模式SOAP以XML形式提供了一个简单、轻量的用于在非集中、分布式环境中交换结构化和对象信息的机制。使用XML企业应用开发5SOAP组成组成:⑴SOAP封装(Envelope),其定义了一个整体框架用来表示消息中包含什么内容,谁来处理内容及处理是可选或是必需的;⑵SOAP编码规则(encodingrules),定义用以交换应用程序的数据类型实例的一系列机制⑶SOAPRPC表示,定义一个用来表示远程过程调用和应答的协定。⑷SOAP绑定(binding),SOAP绑定使用底层协议传送信息,主要描述SOAP消息如何包含在HTTP消息中进行传送使用XML企业应用开发6SOAP设计目标主要目标是作为一个简单轻便的可扩展框架,以下传统的消息系统和分布式系统的性质不是SOAP规范范围之内:⑴分布式垃圾收集⑵对象引用⑶激活机制使用XML企业应用开发7SOAP消息包含3个元素的XML文档信息项SOAPEnvelopeHeaderBlockAHeaderBlockBSOAPHeaderSOAPBodySOAP消息格式SOAP消息的根元素可选元素,是一种以非集中的方式增加SOAP消息功能的通用手法,其每个子元素都称为Headerblock描述由谁来处理及该处理是可选或必需的。消息体使用XML企业应用开发8SOAP消息示例Headerblock旅行预订请求SOAP使用XML企业应用开发9SOAP消息交换模式SOAP消息是从发送者向接收者单向传送的。原始发送结点A中间节点B中间节点C最终接收结点D消息路径:由一个或多个处理SOAP消息的中间节点构成。SOAP定义三个属性来控制中间节点和最终接收结点处理Headerblock:role、relay和mustUnderstandrole:确定Headerblock所针对的结点mustUnderStand:指示在HeaderBlock未被认出的情况下该节点是否可以忽略HeaderBlockrelay:指示该节点是发送还是放弃未被认出的可选Header为通过的消息提供消息滤波能力,处理Header部分处理Body部分使用XML企业应用开发10SOAP处理模型当前SOAP节点利用role属性处理所需Headerblock集合是否能处理mustUnderstand=true错误消息NY处理消息(删除被处理的HeaderBlock)到最终接收节点?下一节点NY使用XML企业应用开发11一个接收SOAP消息的SOAP应用程序必须按顺序执行以下的步骤处理消息:①识别应用程序需要的SOAP消息的所有部分;②验证消息中的固定部分。如果不支持这些消息就放弃,同时还可以忽略消息的可选部分而不影响处理的结果;③如果该SOAP应用程序不是消息的最终目的地,则在转发消息之前删除第1步中识别的所有部分SOAP处理过程-1使用XML企业应用开发12SOAP处理过程-2中间节点在处理消息时:①需要理解使用的交换方式(单向、请求-应答、多路发送等)②需要了解消息模式中接收方的任务③需要了解使用的RPC机制、数据的表现方法或编码,以及其它的语义使用XML企业应用开发13消息模式发送端接收端R单向发送端接收端R请求-响应发送端RRRR使用XML企业应用开发14传输协议独立性SOAP协议的一个重要特点它独立于底层传输机制为了确保各种SOAP应用和基础结构之间的互操作性,定义协议绑定是必要的SOAP1.1规范定义了基于HTTP的协议绑定方式,利用HTTP请求和响应消息来进行SOAP消息交换使用XML企业应用开发15SOAPHTTP绑定请求响应POST/path/bank.asmxHTTP/1.1Content-Type:text/xmlSOAPAction:”urn:banking:transfer”soap:Envelope…HTTP/1.1200OKContent-Type:text/xmlContent-Length:nnnnSOAp:Envelope…HTTP/1.1500serverErrorContent-Type:text/xmlContent-Length:nnnnSOAp:Envelope…必须使用POST请求必须包含标头,消息意图使用XML企业应用开发16基于HTTPSOAPHTTP不是一个可靠的传输协议HTTP协议基于请求、响应模型,客户端需要等待应答消息的接收完成才能继续执行(同步)使用XML企业应用开发17基于JMSSOAP服务请求服务提供客户端应用Web服务API(JAX-RPC)Web服务引擎AXISJMS绑定支持JMS服务实现Web服务API(JAX-RPC)Web服务引擎AXISSOAP消息JMS绑定支持JMSJMS消息使用XML企业应用开发CXFWebService开发开发环境MyEclipseTomcatJdkCXF2.4.0版18使用XML企业应用开发一、准备工作1、CXF官方网址:、Jar包下载地址:,目录大概就这样bin目录提供的是常用的dos控制台命令工具docs帮助文档libjar包、依赖库lib-samples也是jar包,有jetty、httpclients、junit等jar包modules打包好的WebService模块samples示例demo19使用XML企业应用开发一、准备工作3、源码下载:,对你了解和学习CXFWebService都会有作用。4、CXF的特性有代码生成工具:JavatoWSDL;WSDLtoJava;XSDtoWSDL;WSDLtoXML;WSDLtoSOAP;WSDLtoService;支持JAX-WS、JAX-WSA、JSR-181和SAAJ;支持SOAP1.1、1.2、WS-IBasicProfile、WS-Security、WS-Addressing、WS-RM和WS-Policy;支持WSDL1.1、2.0;支持MTOM;、JavaScript、通过Yoko支持CORBA;通过Tuscany支持SCA;通过ServiceMix支持JBI内置Jetty应用服务器使用XML企业应用开发二、CXF入门实例步骤1.新建java工程cxfservice导入CXF所依赖的核心jar包详见课本p414页请参考小课课件lib目录下的jar包,直接构建到Java工程中即可使用XML企业应用开发二、CXF入门实例步骤1:定义DTO(数据传输对象)User类使用XML企业应用开发二、CXF入门实例步骤1:定义DTO(数据传输对象)User类使用XML企业应用开发二、CXF入门实例步骤2:编写WebService服务接口使用XML企业应用开发二、CXF入门实例步骤3:为WebService接口提供实现类使用XML企业应用开发步骤3:为WebService接口提供实现类使用XML企业应用开发二、CXF入门实例经过以上3步,使用cxf开发WebService所需的服务提供类都已经开发完了,下面使用一个简单的主类来发布WebServie。cxf支持2种常用的发布WebService的方式:1.使用JAX-WS所提供的Endpoint发布WebService。(推荐使用方式,本课程使用此方式)2.使用CXF自身提供的JaxWsServerFactoryBean工厂类发布WebService。(候选方式,不推荐)使用XML企业应用开发二、CXF入门实例步骤4:编写服务器类代码,发布WebService服务使用XML企业应用开发二、CXF入门实例运行结果使用XML企业应用开发二、CXF入门实例在WebService发布成功之后,使用浏览器来访问该WebService所对应的WSDL,在浏览器地址栏中输入http://localhost:9999/crazyit?wsdl,结果如下:使用XML企业应用开发二、CXF入门实例如果wsdl查看成功,客户端即可远程调用该WebService,编写客户端调用WebService服务提供的方法使用XML企业应用开发二、CXF入门实例客户端执行结果使用XML企业应用开发三、CXF开发动态客户端调用已发布WebService服务准备工作:动态客户端访问,在这种方式下,我们模拟客户端无法接触WebService服务提供者的情形。使用CXF开发动态客户端需要借助于wsdl2java工具,此命令位于apache-cxf-3.0.2\bin目录下,进入该目录,运行以下命令:wsdl2java-frontendjaxws21http://localhost:9999/crazyit?wsdl注意:一定要保证你的服务已经成功发布使用XML企业应用开发三、CXF开发动态客户端步骤1:进入cmd,运行,如下图所示即为成功,可以在bin目录下看到自动生成的org文件夹使用XML企业应用开发三、CXF开发动态客户端步骤2:新建java工程DynaCXFService,然后直接复制bin目录下的org文件夹到src目录下,如下图示:使用XML企业应用开发三、CXF开发动态客户端步骤3:在工程下新建包和类DynaClient,编写客户端调用远程WebService使用XML企业应用开发三、CXF开发动态客户端步骤3:动态客户端代码使用XML企业应用开发三、CXF开发动态客户端运行结果使用XML企业应用开发39总结了解SOAP概念理解SOAP消息的结构论述SOAP的优点了解SOAP的实现熟悉CXF的下载和使用掌握使用CXF开发WebService掌握使用动态客户端访问WebService使用XML企业应用开发态度决定命运,专注成就人生!Thanks!
本文标题:第16讲-SOAP与CXF开发WebService
链接地址:https://www.777doc.com/doc-19675 .html