




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五卷: XML和WebService服务 简单对象访问协议SOAP与CXF开发WebService,2,回顾,了解Apache Axis简介 熟悉Axis应用模型 掌握安装Axis 掌握运用 Axis发布Web服务 了解取消Web服务 了解Axis2,3,目标,了解SOAP概念 理解SOAP消息的结构 论述SOAP的优点 了解SOAP的实现 熟悉CXF的下载和使用 掌握使用CXF开发WebService 掌握使用动态客户端访问WebService,4,SOAP简介,是为了解决互联网中分布式计算所存在的互操作性问题而出现的。 采用:HTTP和XML HTTP用于SOAP消息的传输 XML是SOAP的编码模式 SOAP 以XML形式提供了一个简单、轻量的用于在非集中、分布式环境中交换结构化和对象信息的机制。,5,SOAP组成,组成: SOAP封装(Envelope),其定义了一个整体框架用来表示消息中包含什么内容,谁来处理内容及处理是可选或是必需的; SOAP编码规则(encoding rules),定义用以交换应用程序的数据类型实例的一系列机制 SOAP RPC表示,定义一个用来表示远程过程调用和应答的协定。 SOAP绑定(binding),SOAP绑定使用底层协议传送信息,主要描述SOAP消息如何包含在HTTP消息中进行传送,6,SOAP设计目标,主要目标是作为一个简单轻便的可扩展框架,以下传统的消息系统和分布式系统的性质不是SOAP规范范围之内: 分布式垃圾收集 对象引用 激活机制,7,SOAP消息,包含3个元素的XML文档信息项,SOAP Envelope,Header Block A,Header Block B,SOAP Header,SOAP Body,SOAP 消息格式,SOAP消息的根元素,可选元素,是一种以非 集中的方式增加SOAP 消息功能的通用手法, 其每个子元素都称为 Header block,描述由谁来处理及 该处理是可选或必需 的。,消息体,8,SOAP消息示例,Header block,旅行预订请求SOAP,9,SOAP消息交换模式,SOAP消息是从发送者向接收者单向传送的。,原始发送结点 A,中间节点 B,中间节点 C,最终接收结点 D,消息路径:由一个或多个处理SOAP消息的中间节点构成。SOAP定义三个属性来 控制中间节点和最终接收结点处理Header block:role、relay和mustUnderstand role:确定Header block所针对的结点 mustUnderStand:指示在Header Block未被认出的情况下该节点是否可以忽略 Header Block relay: 指示该节点是发送还是放弃未被认出的可选Header,为通过的消息提供消息滤波能力,处理Header 部分,处理Body部分,10,SOAP处理模型,当前SOAP节点,利用role属性处理所需 Headerblock集合,是否能处理 mustUnderstand=true,错误消息,N,Y,处理消息(删除被处理的 HeaderBlock),到最终接收节点?,下一节点,N,Y,11,一个接收SOAP消息的SOAP应用程序必须按顺序执行以下的 步骤处理消息: 识别应用程序需要的SOAP消息的所有部分; 验证消息中的固定部分。如果不支持这些消息就放弃,同时还可以 忽略消息的可选部分而不影响处理的结果; 如果该SOAP应用程序不是消息的最终目的地,则在转发消息之前 删除第1步中识别的所有部分,SOAP处理过程-1,12,SOAP处理过程-2,中间节点在处理消息时: 需要理解使用的交换方式(单向、请求-应答、多路发送等) 需要了解消息模式中接收方的任务 需要了解使用的RPC机制、数据的表现方法或 编码,以及其它的语义,13,消息模式,发送端,接收端R,单向,发送端,接收端R,请求-响应,发送端,R,R,R,R,14,传输协议独立性,SOAP协议的一个重要特点它独立于底层传输机制 为了确保各种SOAP应用和基础结构之间的互操作性,定义协议绑定是必要的 SOAP1.1规范定义了基于HTTP的协议绑定方式,利用HTTP请求和响应消息来进行SOAP消息交换,15,SOAP HTTP绑定,请求,响应,POST/path/bank.asmx HTTP/1.1 Content-Type:text/xml SOAPAction:”urn:banking:transfer” soap:Envelope,HTTP/1.1 200OK Content-Type:text/xml Content-Length:nnnn SOAp:Envelope,HTTP/1.1 500 server Error Content-Type:text/xml Content-Length:nnnn SOAp:Envelope,必须使用POST请求,必须包含标头,消息意图,16,基于HTTP SOAP,HTTP不是一个可靠的传输协议 HTTP协议基于请求、响应模型,客户端需要等待应答消息的接收完成才能继续执行(同步),选择合适的传输协议,17,基于JMS SOAP,服务请求,服务提供,客户端应用,Web服务API (JAX-RPC),Web服务引擎 AXIS,JMS绑定支持,JMS,服务实现,Web服务API (JAX-RPC),Web服务引擎 AXIS,SOAP消息,JMS绑定支持,JMS,JMS消息,CXF WebService开发,开发环境 MyEclipse Tomcat Jdk CXF2.4.0版,18,一、准备工作,1、 CXF官方网址:/ 2、 Jar包下载地址:/dyn/closer.cgi?path=/cxf/2.4.0/apache-cxf-2.4.0.zip 将下来的jar包解压后,目录大概就这样 bin目录提供的是常用的dos控制台命令工具 docs 帮助文档 lib jar包、依赖库 lib-samples 也是jar包,有jetty、httpclients、junit等jar包 modules 打包好的WebService模块 samples示例demo,19,一、准备工作,3、源码下载:/dyn/closer.cgi?path=/cxf/2.4.0/apache-cxf-2.4.0-src.zip有时候你可以看看源码,对你了解和学习CXF WebService都会有作用。 4、CXF的特性 有代码生成工具:Java to WSDL;WSDL to Java;XSD to WSDL;WSDL to XML;WSDL to SOAP;WSDL to Service; 支持 JAX-WS、 JAX-WSA、JSR-181 和 SAAJ;支持 SOAP 1.1、1.2、WS-I BasicProfile、WS-Security、WS-Addressing、WS-RM 和 WS-Policy;支持 WSDL 1.1 、2.0;支持 MTOM;、JavaScript、通过 Yoko 支持 CORBA;通过 Tuscany 支持 SCA;通过 ServiceMix 支持 JBI 内置Jetty应用服务器,二、CXF 入门实例,步骤1.新建java工程cxfservice导入CXF所依赖的核心jar包 详见课本p414页 请参考小课课件lib目录下的jar包,直接构建到Java工程中即可,二、CXF 入门实例,步骤1:定义DTO(数据传输对象)User类,二、CXF 入门实例,步骤1:定义DTO(数据传输对象)User类,二、CXF 入门实例,步骤2:编写WebService服务接口,二、CXF 入门实例,步骤3:为WebService接口提供实现类,步骤3:为WebService接口提供实现类,二、CXF 入门实例,经过以上3步,使用cxf开发WebService所需的服务提供类都已经开发完了,下面使用一个简单的主类来发布WebServie。cxf支持2种常用的发布WebService的方式: 1.使用JAX-WS所提供的Endpoint发布WebService。(推荐使用方式,本课程使用此方式) 2.使用CXF自身提供的JaxWsServerFactoryBean工厂类发布WebService。(候选方式,不推荐),二、CXF 入门实例,步骤4:编写服务器类代码,发布WebService服务,二、CXF 入门实例,运行结果,二、CXF 入门实例,在WebService发布成功之后,使用浏览器来访问该WebService所对应的WSDL,在浏览器地址栏中输入http:/localhost:9999/crazyit?wsdl,结果如下:,二、CXF 入门实例,如果wsdl查看成功,客户端即可远程调用该WebService,编写客户端调用WebService服务提供的方法,二、CXF 入门实例,客户端执行结果,三、CXF 开发动态客户端调用已发布WebService服务,准备工作: 动态客户端访问,在这种方式下,我们模拟客户端无法接触WebService服务提供者的情形。 使用CXF开发动态客户端需要借助于wsdl2java工具,此命令位于apache-cxf-3.0.2bin目录下,进入该目录,运行以下命令: wsdl2java -frontend jaxws21 http:/localhost:9999/crazyit?wsdl 注意:一定要保证你的服务已经成功发布,三、CXF开发动态客户端,步骤1:进入cmd,运行,如下图所示即为成功,可以在bin目录下看到自动生成的org文件夹,三、CXF开发动态客户端,步骤2:新建java工程DynaCXFService,然后直接复制bin目录下的org文件夹到src目录下,如下图示:,三、CXF开
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit 5 First Aid 单元仿真验收性评价(含解析)高中英语人教版选择性必修 第二册
- 2025年动漫作品改编权及衍生品开发授权合同终稿
- 二零二五年度智能仓储运营维护及增值服务合同
- 2025年绿色金融产品推广顾问服务合同
- 2025年度员工食堂环境优化装修与智能化升级合同
- 2025年二手车交易合同书编制与质量检测协议
- 2025年民营医院医用耗材一体化配送及库存优化管理协议
- 2025年供应链合作协议:跨境电商平台物流配送服务合同
- 2025年公共文化设施建设项目招投标合同监督及资金拨付监管协议
- 代理加盟合同协议书
- 渝22TS02 市政排水管道附属设施标准图集 DJBT50-159
- 学生全面发展
- 水库维修申请报告
- 城市管理网格员理论知识考核要素细目表
- 2《宁夏闽宁镇昔日干沙滩今日金沙滩》公开课一等奖创新教案+(共40张)+随堂练习(含答案)
- 部编版语文五年级上册牛郎织女(一)课件
- 支原体感染详细讲解
- 《学前儿童艺术教育》课件-第一章
- 企业绿色工厂管理制度
- 《导游业务》课程标准
- 山东省青岛市城阳区2024-2025学年下学期期中考试七年级数学试题(含部分答案)
评论
0/150
提交评论