第10章WebService开发课堂精简.ppt

上传人:sccc 文档编号:6614831 上传时间:2023-11-18 格式:PPT 页数:79 大小:1.05MB
返回 下载 相关 举报
第10章WebService开发课堂精简.ppt_第1页
第1页 / 共79页
第10章WebService开发课堂精简.ppt_第2页
第2页 / 共79页
第10章WebService开发课堂精简.ppt_第3页
第3页 / 共79页
第10章WebService开发课堂精简.ppt_第4页
第4页 / 共79页
第10章WebService开发课堂精简.ppt_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《第10章WebService开发课堂精简.ppt》由会员分享,可在线阅读,更多相关《第10章WebService开发课堂精简.ppt(79页珍藏版)》请在三一办公上搜索。

1、1,Java EE应用技术基础,济南大学信息学院 刘鹍,2,JPA,开发步骤:增加JPA开发能力配置文件 persistence.xml 编写带标注的实体类(可以通过反向工程生成)编写DAO层类(可以通过反向工程生成)目录结构:META-INF/persistence.xml实体Bean:带注释的POJO类DAO层接口和实现类(会话Bean),3,EJB实体Bean,JBoss中实体Bean的应用配置JBoss数据源(*-ds.xml)在MyEclipse的Database Explorer视图下新建一个数据库连接的实例新建一个EJB project,选择使用JPA,同时指定数据源的名称(ja

2、va:数据源名称)和数据库连接的参数。反向工程(EJB3 Reverse Engineering)生成实体Bean和DAO层实现类(接口)打包,发布(需要把JDBC驱动拷贝到serverdefaultdeploy的lib下面)写测试类测试,4,第10章 Web Service开发,5,学习要点:,1掌握Web Service的基础知识。2熟悉使用JAX-WS构建Web Service的过程。3掌握JAXB绑定XML Schema的方法。4了解SAAJ。5.了解JAXR。,6,Web Service概述,什么是Web Service?Web Service 是一种新的 Web 应用程序分支,它们

3、是自包含、自描述、模块化的应用,可以在网络(通常为 Web)中被描述、发布、查找以及通过 Web 来调用。Web Service是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得 Web Service 能与其他兼容的组件进行互操作。使用标准的互联网协议,像超文本传输协议 HTTP 和 XML。,7,Web Service概述,简单来说,Web Service就是一个向外界暴露出接口的能够通过网络进行远程调用的应用程序。更准确地说:一方面Web Service是一种部署在Web上的对象;另一方面Web Service是建立在以XML为主的、开放的Web标准协议

4、规范的基础上的分布式应用新平台,也就是说Web Service的实质是一套标准,它定义了应用程序如何在Web上实现互操作。只需要遵守这一套标准,人们可以用任何语言,在任何平台上实现所需要的Web Service,并且可以顺利地同网络上任何其它亦遵守上述协议的Web Service组件进行互操作,从而可以实现一种高效、低廉的异构平台上应用的集成。对于从事企业应用开发来讲,学习Web Service技术是相当必要的。,8,第10章 Web Service开发,10.1 Web服务概述 10.2 WEB Service基础 10.3 XML基础10.4 用于XML的java API(JAXP)10.

5、5 使用JAX-WS构建简单的Web Service10.6 使用JAXB绑定XML Schema10.7 SAAJ10.8 JAXR,9,第10章 Web Service开发,10.1 Web服务概述 10.2 WEB Service基础 10.3 XML基础10.4 用于XML的java API(JAXP)10.5 使用JAX-WS构建简单的Web Service10.6 使用JAXB绑定XML Schema10.7 SAAJ10.8 JAXR,10,10.1 Web服务概述,10.1.1 Web Service的核心标准10.1.2 Web Service体系架构,11,10.1.1 W

6、eb Service的核心标准,XMLSOAPWSDLUDDI,12,10.1.1 Web Service的核心标准,XMLXML(eXtensible Markup Langugage,即可扩展标记语言)是Web Service技术架构的基石,它是Web Service中表示数据的基本格式,但是它没有定义怎样扩展这套数据类型。例如,整形数用16位、32位还是64位表示并没有在XML中定义。而W3C制定的XML Schema就是专门解决这个问题的一套标准,它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型,Web Service平台就是用XML Schema作为其数据类型系统的。,

7、13,10.1.1 Web Service的核心标准,SOAPSOAP(Simple Object Access Protocol,简单对象访问协议)提供了标准的RPC(远程过程调用协议)方法来调用Web Service。SOAP规范中定义了SOAP消息的格式,以及怎样通过HTTP协议来使用SOAP。SOAP是基于XML和XSD(XML Schemas Definition)的,其中XML是SOAP的数据编码方式。,14,10.1.1 Web Service的核心标准,WSDLWSDL(Web Services Description Language,Web Services 描述语言)是一

8、种基于XML的,用于描述Web Service及其操作、参数和返回值的语言。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。不然依靠Web Service作者自身的即兴发挥,对Web Service的描述将会变得混乱且不能被计算机解析。一些最新的开发工具既能根据Web Service生成WSDL文档,又能通过导入WSDL文档,生成调用相应Web Service的代码。,15,10.1.1 Web Service的核心标准,UDDIUDDI(Universal Description Discovery Integration,统一描述、发现和集成协议)是

9、Web Service 架构下核心的服务描述、发现和集成机制,其目的是在网上自动查找Web Service。一旦Web Service注册到UDDI,客户就可以很方便地查找和定位到所需要的Web Service。,16,10.1.2 Web Service体系架构,服务提供者(Service Provider)从企业的角度看,这是服务的所有者。从体系结构的角度看,这是托管被访问服务的平台。服务请求者(Service Requestor)从企业的角度看,这是要求满足特定功能的企业。从体系结构的角度看,这是寻找并调用服务,或启动与服务交互的应用程序。服务请求者角色可以由浏览器来担当,由人或无用户界

10、面的程序(例如,另一个Web Service)来控制它。服务注册中心(Service Registry)这是可搜索的服务描述注册中心,服务提供者在此发布他们的服务描述。,17,10.1.2 Web Service体系架构,Publish(发布)服务提供者发布服务描述以使服务可访问并且服务请求者可以查找它。Find(查找)服务请求者可以通过服务注册中心查找特定种类的服务。Bind(绑定)服务请求者通过绑定调用服务提供者提供的服务。,18,第10章 Web Service开发,10.1 Web服务概述 10.2 WEB Service基础 10.3 XML基础10.4 用于XML的java API

11、(JAXP)10.5 使用JAX-WS构建简单的Web Service10.6 使用JAXB绑定XML Schema10.7 SAAJ10.8 JAXR,19,10.2 WEB Service基础,10.2.1 SOAP10.2.2 WSDL10.2.3 UDDI,20,10.2.1 SOAP,SOAP(Simple Object Access Protocol,简单对象访问协议)是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议。SOAP在Web Service中作为用于XML 消息传递的一种非常普遍的协议,它包括四个部分:SOAP封装(envelop),封装定义了一个描述

12、消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAP编码规则(encoding rules),用于表示应用程序需要使用的数据类型的实例;SOAP RPC表示(RPC representation),表示远程过程调用和应答的协定;SOAP绑定(binding),使用底层协议交换信息。虽然这四个部分都作为SOAP的一部分定义的,但它们在功能上是相交的、彼此独立的。特别的,信封和编码规则是被定义在不同的XML命名空间(namespace)中,这样使得定义更加简单。,21,10.2.1 SOAP,SOAP的两个主要设计目标是简单性和可扩展性。这就意味着有一些传统消息系统或

13、分布式对象系统中的某些性质将不是SOAP规范的一部分。比如:分布式垃圾收集(Distributed garbage collection)、成批传送消息(Boxcarring or batching of messages)、对象引用(Objects-by-reference(which requires distributed garbage collection))、对象激活(Activation(which requires objects-by-reference))。,22,10.2.1 SOAP,SOAP可简单地理解为这样一个开放协议的组合SOAP=RPC+HTTP+XML:采用H

14、TTP作为底层通讯协议;RPC作为一致性的调用途径;XML作为数据传送的格式,允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互。RPC的描叙可能不太准确,因为SOAP一开始构思就是要实现平台与环境的无关性和独立性,每一个通过网络的远程调用都可以通过SOAP封装起来,包括DCE(Distributed Computing Environment)、RPC CALLS、COM/DCOM CALLS、CORBA CALLS、JAVA CALLS等等。,23,10.2.1 SOAP,客户发送请求时,不管客户是什么平台,首先把请求转换成XML格式,SOAP网关可自动执行这个转换。为了保证

15、传送时参数、方法名、返回值的唯一性,SOAP协议使用了一个私有标记表,从而服务器的SOAP网关可以正确地解析;而使用XML作为编码表现形式,提供了更高层次上的抽象,从而实现与平台和环境的无关。,24,10.2.2 WSDL,WSDL(Web Service Description Language,即Web服务器描述语言)是用XML文档来描述Web服务的标准,是Web服务的接口定义语言,由Ariba、Intel、IBM、Microsoft等共同提出。通过WSDL,可描述Web服务的三个基本属性:服务做些什么服务所提供的操作(方法)如何访问服务和服务交互的数据格式以及必要协议服务位于何处协议相关

16、的地址,如URL,25,10.2.2 WSDL,WSDL文档以端口集合的形式来描述Web服务,WSDL 服务描述包含对一组操作和消息的一个抽象定义,绑定到这些操作和消息的一个具体协议,和这个绑定的一个网络端点规范。WSDL 文档被分为两种类型:服务接口(service interface)和 服务实现(service implementations),26,10.2.2 WSDL,WSDL 文档在Web Service的定义中使用下列元素:Types-数据类型定义的容器;Message-通信消息的数据结构的抽象类型化定义;Operation-对服务中所支持的操作的抽象描述;PortType-对

17、于某个访问入口点类型所支持的操作的抽象集合;Binding-特定端口类型的具体协议和数据格式规范的绑定。Port-定义为协议/数据格式绑定与具体Web访问地址组合的单个服务访问;Srvice-相关服务结点的集合。,27,10.2.3 UDDI,UDDI(Universal Description,Discovery and Integration,即统一描述、发现与集成协议标准)是一个非常重要的创新。它是第一个由平台提供者、软件开发者、交易市场运营者、电子商务企业和全球商务领头羊为解决B2B电子商务的发展的局限性而一起提出的跨行业的解决方案,是一套基于Web的、分布式的、为Web服务提供的信息

18、注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web服务注册以使得别的企业能够发现的访问协议的实现标准。,28,10.2.3 UDDI,UDDI计划是一个广泛的,开放的行业计划,它使得商业实体能够(1)彼此发现;(2)定义它们怎样在internet上互相作用,并在一个全球的注册体系架构中共享信息。UDDI是这样一种基础的系统构筑模块,它使商业实体能够快速、方便地使用它们自身的企业应用软件来发现合适的商业对等实体,并以其实施电子化的商业贸易。,29,10.2.3 UDDI,UDDI同时也是Web服务集成的一个体系框架。它包含了服务描述与发现的标准规范。UDDI规范利用了W3C和Int

19、ernet工程任务组织(IETF)的很多标准作为其实现基础,比如XML,HTTP和域名服务(DNS)这些协议。另外,在跨平台的设计特性中,UDDI主要采用了已经被提议给W3C的规范的早期版本。,30,10.2.3 UDDI,通过这个开放性的计划,企业可以发布他们所期望的在Web上实现商务流程对接的方式的相关信息和技术规范,这潜在地为B2B商务的成长提供了动力。UDDI将通过创建一个全球的、独立平台,运用Internet发现商机、描述服务和综合商务的开放式框架,使所有的贸易都从中获利。,31,10.2.3 UDDI,UDDI计划不由任何一家现有的公司实际运作。同时它也不是一个标准的实体或者是一个

20、新的公司。UDDI商业注册中心被作为一个支持UDDI规范的Web服务来运作。最初,Ariba,IBM和Microsoft将运作这个分布式的服务,但是额外的注册中心的访问入口仍然被期待着。一个访问入口的委员会(Operator Council)将协助制定访问入口的方针和服务质量等问题。,32,10.2.3 UDDI,从UDDI可以获得的直接收益包括:具备UDDI能力的企业可以在Internet上通过他们首选的企业应用,快速便捷地发现合适的商业实体并实现彼此之间的互操作,这将最终推动企业自身的经济收益。为企业迅疾地参与全球化的Internet经济提供了一个方便的发展道路。提供了一个为商业在一个简单

21、的开放式环境中,循序渐进地描述他们的服务和商业流程的途径。提供了一组规范,使企业能够在Internet上调用服务并为他们的首选客户提供增值服务。,33,回顾:Web服务基础,SOAP:Simple Object Access Protocol,简单对象访问协议WSDL:Web Service Description Language,即Web服务器描述语言UDDI:Universal Description,Discovery and Integration,即统一描述、发现与集成协议标准,34,第10章 Web Service开发,10.1 Web服务概述 10.2 WEB Service基

22、础 10.3 XML基础10.4 用于XML的java API(JAXP)10.5 使用JAX-WS构建简单的Web Service10.6 使用JAXB绑定XML Schema10.7 SAAJ10.8 JAXR,35,10.3 XML基础,10.3.1 XML标准10.3.2 DTD10.3.3 XML Schema,36,10.3 XML基础,XML(eXtensible Makeup Language,即可扩展标记语言)是一种简单灵活的文本格式,可以作为创建新的标记语言的基础,以便在文档发布和数据交换中使用。XML 基于万维网联盟(W3C)的工作小组发布的一系列标准。因此,非常适合(且

23、不限于)在基于Web 的应用程序中使用。XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其它与特定领域有关的、语义的、结构化的标记语言的句法语言。,37,10.3 XML基础,关于XML要理解的第一件事是,它不只是像超文本标记语言(Hypertext Markup Language,HTML)或是格式化的程序。XML是一种元标记语言。用户可以定义自己需要的标记。这些标记必须根据某些通用的原理来创建,但是在标记的意义上,也具有相当的灵活性。XML定义了一套元句法,与特定领域有关的标记语言(如MusicML、MathML和CML)都

24、必须遵守。如果一个应用程序可以理解这一元句法,那么它也就自动地能够理解所有的由此元语言建立起来的语言。关于XML要了解的第二件事是,XML标记描述的是文档的结构和意义。它不描述页面元素的格式化。可用样式单为文档增加格式化信息。文档本身只说明文档包括什么标记,而不是说明文档看起来是什么样的。,38,10.3 XML基础,Hot Cop by Jacques Morali Henri Belolo and Victor Willis Producer:Jacques Morali Publisher:PolyGram Records Length:6:20 Written:978 Artist:V

25、illage People,Hot Cop Jacques Morali Henri Belolo Victor Willis Jacques Morali PolyGram Records 6:20 978 Village People,39,10.3 XML基础,XML是一种类似于HTML的标记语言,但是它是被设计用来描述数据的,重点是什么是数据,如何存放数据,与描述信息相关;而HTML是被设计用来显示数据的,重点是显示数据以及如何显示数据更好,与显示信息相关。XML不是HTML的替代品,XML和HTML是两种不同用途的语言。XML 被设计成什么都不做的,它只是用来组织、存储和发送信息。X

26、ML是自由的、可以扩展的;XML使用文档类型定义(DTD)或者模式(Schema)来描述数据;XML是一种跨平台的,与软、硬件无关的,处理信息的工具;,40,10.3 XML基础,XML的主要应用:作为配置文件:SpringStrutsHibernateWeb应用Tomcat的server.xmlJBossEJB作为数据传输的标准:AJAXWeb Service,41,10.3 XML基础标准XML技术,XML:XML 1.0(第2版)W3C 推荐标准当然是衍生出 XML 技术大树的主干。它在 Unicode Unicode Consortium 技术报告和 ISO 标准的基础上定义了文本格式

27、的严格规则,以及 Document Type Definition(文档类型定义,DTD)验证语言。XML 1.1 开发中是改变了结构良好的 XML 文档的定义的第一个修订版。主要的变化是修订了XML 规范中对字符的处理,使其更自然地适应 Unicode 规范的变化,并通过引用 Character Model for the World Wide Web(万维网字符模型)1.0 开发中,提供了不同 Unicode 版本字符的规范化。XML 1.1 还增加了行结束字符列表,新增加的 NEL 用于在 IBM 大型机系统中表示行结束(EOL)。,42,10.3 XML基础标准XML技术,XML Ca

28、talogs XML Catalogs OASIS 委员会规范定义了一种格式,指导 XML 处理程序把 XML 实体标识符解析成实际的文档。XML Namespaces Namespaces in XML 1.0 W3C 推荐标准提供了一种统一命名 XML 文档中的元素和属性的机制。XML Base XML Base W3C 推荐标准提供了一种联系 XML 元素和 URI 方法,以便更精确地规定在相关的XML处理活动中如何解析相对 URI。XInclude XML Inclusions(XInclude)1.0 开发中提供了一种合并 XML 文档的系统。XInclude 通常用于希望将XML文

29、档分成多个可管理的段的情况。可以根据需要分割文档,然后再使用 XInclude把文档合并回去。,43,10.3 XML基础标准XML技术,XML Infoset XML Information Set W3C 推荐标准也称为 XML Infoset,定义了一种抽象的方式把 XML 文档描述为一系列带有特定属性的对象,即信息项。Canonical XML(c14n)Canonical XML Version 1.0 W3C 推荐规范是一种生成XML文档物理表示的标准方法,称为规范化形式,用于统一XML语法中不影响语义的几种变体。XPath XML Path Language(XPath)1.0

30、W3C 推荐标准是处理XML文档部分的一种语法和处理模型。它包括一些通用表达式语言的特性,被设计成一种小型的语言,以便在XML系统中进行应用程序中立的处理。XPointer XPointer Framework W3C 推荐标准定义了一种语言,可用于于语音用 XML 文档中的片段。,44,10.3 XML基础标准XML技术,XLink XML Linking Language(XLink)1.0 W3C 推荐标准提供了一种在 XML 文档中表示链接的通用框架。RELAX NG RELAX NG OASIS 委员会规范和 ISO 草案标准是一种XML模式语言,即一种可用于定义和限制XML词汇表的

31、语言。W3C XML Schema XML Schema Part 1:Structures 和 XML Schema Part 2:Datatypes W3C 推荐标准定义了另一种 XML 模式语言。第一部分用于约束文档的结构,第二部分则用于约束简单元素和属性的内容。Schematron Schematron Assertion Language 1.5 社区标准和草案 ISO 标准是一种模式语言,使用了不同于 DTD、RELAX NG 和 WXS 的方法。,45,10.3.2 DTD,DTD(Documnet Type Definition,即文件类型定义)是XML1.0版规格的一部分,它

32、是XML文件的验证机制,属于XML文件组成的一部分。DTD在XML文件所扮演的角色就是定义XML文件的元素架构、元素标记和属性。DTD是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。,46,10.3.2 DTD,调用DTD文件的方法有两种:直接包含在XML文档内的DTD 这种方法只需要在DOCTYPE声明中插入一些特别的说明就可以了。调用独立的DTD文件 这种方法将DTD文档存为后缀为.dtd的文件,然后在DOCTYPE声明

33、行中调用。,XML轻松学习手册ajie,XML轻松学习手册ajie,47,10.3.2 DTD,DTD的常用的术语如下:Schema(规划)schema是数据规则的描述,主要完成两件事:a.它定义元素数据类型和元素之间的关系;b.它定义元素所能包含的内容类型。Document Tree(文档树)文档树是文档元素分级结构的形象表示。一个文档结构树包含根元素,根元素是最顶级的元素。Parent Element/Child Element 父元素是指包含有其它元素的元素,被包含的元素称为它的子元素。Parser(解析器)Parser是一种检查XML文档是否遵循DTD规范的工具软件。XML的parse

34、r发展为两类:一种是非确认类parser,只检测文档是否遵守XML语法规则,是否用元素标识建立了文档树;另一种是确认类parser,它不但检测文档语法,结构树,而且比较解析用户使用的元素标识是否遵守了相应DTD文件的规范。,48,10.3.3 XML Schema,XML Schema与DTD一样是负责定义和描述XML文档的结构和内容模式的。它可以定义XML文档中存在哪些元素和元素之间的关系,并且可以定义元素和属性的数据类型。XML Schema本身是一个XML文档,它符合XML语法结构,可以用通用的XML解析器解析它。DTD的缺陷:描述能力有限没有数据类型的支持约束定义能力不足不够结构化未使

35、用XML作为描述手段,DTD没有标准的编程接口,49,10.3.3 XML Schema,XML Schema的优点有:XML Schema基于XML,没有专门的语法XML可以象其它XML文件一样解析和处理XML Schema支持一系列的数据类型(int、float、Boolean、date等)XML Schema提供可扩充的数据模型XML Schema支持综合命名空间XML Schema支持属性组XML Schema文档后缀名是.xsd,完全符合XML语法,根元素是,命名空间是xmlns:xsd=http:/www.w3.org/2001/XMLSchema,用元素定义实例文档中的元素。,5

36、0,10.3.3 XML Schema,例1:XML Schema(greeting.xsd):,Hello World!,51,10.3.3 XML Schema,例2:note.dtd:XML Schema(note.xsd):,52,10.3.3 XML Schema,对DTD引用:对XML Schema引用:,George John Reminder Dont forget the meeting!,George John Reminder Dont forget the meeting!,53,第10章 Web Service开发,10.1 Web服务概述 10.2 WEB Serv

37、ice基础 10.3 XML基础10.4 用于XML的java API(JAXP)10.5 使用JAX-WS构建简单的Web Service10.6 使用JAXB绑定XML Schema10.7 SAAJ10.8 JAXR,54,10.4 用于XML的Java API(JAXP),10.4.1 SAX10.4.2 文档对象模型DOM10.4.3 可扩展样式表语言转化(XSLT),55,10.4.1 SAX,SAX(SimpleAPIforXML,即XML简单应用程序接口)是一个为访问XML文档提供的事件驱动的机制,是第一个被广泛采用的用Java编写的XML API,是一个事实上的标准。SAX是

38、一个用于处理XML的事件驱动的“推”模型。它不是W3C标准,但它是一个得到了广泛认可的API。大多数SAX解析器在实现的时候都遵循标准。SAX解析器不象DOM那样建立一个整个文档的树型表示,而是在读取文档时激活一系列的事件。这些事件被推给事件处理器,而事件处理器则提供对文档内容的访问。,56,10.4.1 SAX,事件处理器有三种基本类型:用于访问XML DTD内容的DTDHandler用于低级访问解析错误的ErrorHandler用于访问文档内容的最普遍类型ContentHandler,57,10.4.1 SAX,XML in a NutshellElliotte Rusty Harold,

39、W.Scott Means39.95Who Moved My CheeseSpencer,M.D.Johnson,Kenneth H.Blanchard19.95,58,10.4.1 SAX,首先,编写一个ContentHandler实现类,public class MyContentHandler extends DefaultHandler boolean isTitle;public void startElement(String uri,String localName,String qName,Attributes atts)if(localName.equals(title)is

40、Title=true;public void endElement(String uri,String localName,String qName)if(localName.equals(title)isTitle=false;public void characters(char chars,int start,int length)if(isTitle)System.out.println(new String(chars,start,length);,59,10.4.1 SAX,其次,为SAX解析器配置用户定制的ContentHandler,然后该解析器开始处理XML文档。该解析器产生

41、相应的一些事件并在从头至尾读取文档时将这些事件推给ContentHandler。,SAXParser saxParser=new SAXParser();MyContentHandler myHandler=new MyContentHandler();saxParser.setContentHandler(myHandler);saxParser.parse(new File(books.xml);,60,10.4.1 SAX,与DOM相比,SAX解析器提供更佳的性能优势。它提供对XML文档内容的有效低级访问。SAX模型最大的优点是内存消耗小,因为整个文档无需一次加载到内存中,这使SAX解析

42、器可以解析大于系统内存的文档。另外,用户无需象在DOM中那样为所有节点创建对象。最后,SAX“推”模型可用于广播环境,在这里可以注册多个ContentHandler,并行接收事件,而不是在一个管道中只能一个接一个地处理。,61,10.4.1 SAX,SAX的缺点是用户必须实现处理所有到来的事件的事件处理程序。用户必须在用户的应用程序代码中维护这个事件状态。因为SAX解析器不能交流元信息,如DOM的父/子支持,所以用户必须跟踪解析器处在文档层次的哪个位置。这样,用户的文档越复杂,用户的应用逻辑就越复杂。虽然没有必要一次将整个文档加载到内存中,但SAX解析器仍然需要解析整个文档,这点和DOM一样。

43、,62,10.4.2 文档对象模型DOM,DOM(Document Object Model,即文档对象模型)是一个来自W3C的成熟标准。它是一个基于树型的解析技术,它在内存中构建起一棵完整的解析树。它可以实现对整个XML文档的全面、动态访问。,63,10.4.2 文档对象模型DOM,64,10.4.2 文档对象模型DOM,虽然内存树结构提供了很好的导航支持,但仍有一些解析策略问题需要考虑。整个XML文档必须一次解析完成,不可能只做部分解析。在内存中加载整个文档和构建完整树结构成本很高,尤其当文档非常大的时候。典型地,DOM树的容量比文档容量要大一个数量级,所以它要消耗大量内存。一般的DOM节

44、点类型在互操作性上有优势,但对于对象类型绑定也许不是最好的。,DOMParser parser=new DOMParser();parser.parse(books.xml);Document document=parser.getDocument();NodeList nodes=document.getElementsByTagName(title);while(int i=0;i nodes.length();i+)Element titleElem=(Element)nodes.item(i);Node childNode=titleElem.getFirstChild();if(ch

45、ildNode instanceof Text)System.out.println(Book title is:+childNode.getNodeValue();,65,10.4.3 可扩展样式表语言转化(XSLT),XSLT(XSL Transformations)是由XSL(eXtensible Stylesheet Language,即可扩展样式表语言)发展而来的,即XSL转换。XSLT是W3C标准,是一种基于XML的语言,用于将一类(class)XML文档转换成另一种XML文档,或者可被浏览器识别的其它类型的文档,比如 HTML 和 XHTML。通常,XSLT 是通过把每个 XML

46、 元素转换为(X)HTML 元素来完成这项工作的。,66,10.4.3 可扩展样式表语言转化(XSLT),描述转化过程的一种通常的说法是:XSLT 把 XML 源树转换为 XML 结果树。在转换过程中,XSLT 使用 XPath 来定义源文档中可匹配一个或多个预定义模板的部分。一旦匹配被找到,XSLT 就会把源文档的匹配部分转换为结果文档。,67,10.4.3 可扩展样式表语言转化(XSLT),Empire BurlesqueBob DylanUSAColumbia10.901985,68,10.4.3 可扩展样式表语言转化(XSLT),My CD Collection Title Artis

47、t,69,第10章 Web Service开发,10.1 Web服务概述 10.2 WEB Service基础 10.3 XML基础10.4 用于XML的java API(JAXP)10.5 使用JAX-WS构建简单的Web Service10.6 使用JAXB绑定XML Schema10.7 SAAJ10.8 JAXR,70,10.5 使用JAX-WS构建简单的Web Service,10.5.1 所需要的Endpoint10.5.2 编写实现的类10.5.3 绑定、打包、发布Web Service10.5.4 没有客户端的情况下测试Web Service10.5.5 简单的Web Serv

48、ice客户端,71,10.5 使用JAX-WS构建简单的Web Service,Web服务(Web Services)在J2EE 1.4平台上的实现是JAX-RPC,而到了JAVAEE 5上,Sun采用了新的Web Service实现规范JAX-WS。JAX-RPC与JAX-WS最大的不同是编程模式的差别。JavaEE 5由于是基于JDK1.5的新Java语言特性,在JAX-WS使用了大量的标注(annotation),因而减少了Web Services的代码量与部署工作,自然也简化了开发。,72,10.5.1 所需要的Endpoint,Endpoint(Web 服务端点)从JAX-WS 2.

49、0开始,包层次结构为javax.xml.ws.Endpoint。可以使用在此类中定义的静态方法创建端点。一个端点总是绑定到一个 Binding 和一个实现者,这两项都是在创建端点时设置的。端点要么处于已发布状态,要么处于未发布状态。可以使用 publish 方法开始发布端点,此时端点开始接受传入请求。相反,可以使用 stop 方法停止接受传入请求并取消端点。一旦停止,就不能再次发布该端点。端点可以使一个元数据文档(如 WSDL 和 XMLSchema 文档)列表与之绑定。发布时,JAX-WS 实现将根据实现者上存在的注释,尽可能多地重用这些元数据,而不是生成新的元数据。,73,10.5.1 所

50、需要的Endpoint,Java API for XML Web Services(JAX-WS)2.0是JavaEE 5平台的一个重要的部分。作为Java API for XML-based RPC 1.1(JAX-RPC)的后续版本,在JAX-RPC 1.1中,开发人员需要写一个接口类Service Endpoint Interface(SEI),在JAX-WS 2.0中,开发人员一上来就可以直接写自己的实现类。通过使用annotations,自动生成SEI和其它一些文件.这样有助于开发人员专注于自己想开发的部分,而不必要地分散精力去维护其它的一些附属文件。,74,10.5.2 编写实现的

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号