注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络网络与数据通信Web ServerJ2EE Web Services高级编程

J2EE Web Services高级编程

J2EE Web Services高级编程

定 价:¥79.80

作 者: (美)Richard Monson-Haefel著;崔洪斌,王爱民译;崔洪斌译
出版社: 清华大学出版社
丛编项:
标 签: J2EE

ISBN: 9787302094340 出版时间: 2005-04-01 包装: 平装
开本: 26cm 页数: 640 字数:  

内容简介

  Web服务正在使传统企业商务发生变革,它可以使各个单独的应用程序能够彼此通信、彼此交换商务数据。现在,J2EE应用遍布整个Web服务平台。但是,用户如何在这一蓬勃发展的领域中遨游呢?本书作者RichardMonson-Haefel为需要了解用于Web服务和Web服务标准的J2EEAPI的Java开发人员提供了权威的指导,全面介绍了如何使用J2EE技术开发和部署Web服务,并详细阐述了由Web服务互操作性组织(WS-I)发布的标准,以便最大可能地实现互操作性。作者还深入探讨了Web服务标准、J2EE1.4WebServicesAPI及组件等高级主题。此外,本书附录还提供了大量实用参考信息,包括XML正则表达式、Base64编码、DTD、SwA、RPC/EncodedSOAP通信等,以便开发人员更深入地理解和掌握J2EE技术、API与企业应用程序,以及基于Web的应用程序集成。[前言]序言本书介绍了由Web服务互操作性组织的BasicProfile1.0认可的各种Web服务标准,因为这些标准在生产中已经得到了验证,而且J2EEWeb服务平台需要这些服务。本书还介绍了Web服务特有的J2EEAPI与组件。实际上,主要Web服务标准(XML、SOAP、JAXP和UDDI)以及J2EEWebServicesAPI(JAX-RPC、SAAJ、JAXR和JAXP)非常复杂,读者要想掌握这些内容需要花时间学习本书。本书通俗易懂,具有极高的参考价值。Web服务的重要性不断发展的技术使得传媒业发生了巨大的变化,并最终得以普及。WorldWideWeb、Java技术以及XML似乎无处不在,这些技术均快速得以应用,而且在当今已成为企业级计算的主要技术。Web服务最早出现于2000年,也是不断发展的技术。Web服务是随着传媒业的巨大扩张出现的,但Web服务已经得到商务活动的认可,并开始被大量开发人员采纳。如果读者在2003年之前还没有涉及Web服务,请不要着急,因为还没有错过太多机会。Web服务发展的头两年应该是Web服务的试用期。当时,Web服务社团定义了丰富的规范,并且在实际使用这些规范时发现了大量实际问题。然而,2003年标志着Web服务开始快速成长。如果读者只是在Web服务的潮流旁观望的话,那么就会错失良机。读者应该使自己成为新技术的先行者、将自己投身到分布式计算历史的重大革新中。学习本书需要的预备知识本书适用于希望学习Web服务以及由J2EE定义的相关API的Java开发人员。本书更像是一本参考书,但书中的许多章节采用了使用指南编写风格。本书主要目的是介绍J2EEWeb服务。读者学习本书时应具有使用Java编程语言的经验。如果读者没有这方面的经验,那么学习本书第9章以后的内容时会有些困难。此外,读者还应该对J2EE平台有基本的了解。本书只介绍J2EE的Web服务功能,不涉及其他J2EEAPI以及其他技术。学习本书时并不需要读者知道XML、SOAP、WSDL、UDDI或任何J2EEWebServicesAPI(JAX-RPC、SAAJ、JAXR、JAXP)方面的内容。书中将对这些内容给予详细介绍,因此相信即使是初学者也能够理解这些内容。本书内容本书将只重点介绍Web服务标准以及J2EE1.4WebServicesAPI与组件,其他方面的内容将在其他书中介绍。本书主要介绍以下的Web服务标准:●XML1.0●SOAP1.1●带附件的SOAP消息●WSDL1.1●UDDI2.0●WS-IBasicProfile1.0Web服务标准占本书内容的三分之一(第1章到第8章介绍Web服务标准)。本书其余部分将介绍以下J2EEWebServicesAPI:●JAX-RPC1.1●SAAJ1.2●JAXR1.0●JAXP1.2本书介绍了J2EE1.4中规定的WebServicesAPI的使用,因为J2EE1.4是第一个全面采用Web服务范例的Java平台。本书结构本书是J2EEWeb服务的参考手册与指南。书中的各章相互关联。例如,当学习完第Ⅰ部分介绍的XML后,就可以学习第Ⅱ部分介绍的SOAP与WSDL。与此类似,在学习第Ⅳ部分介绍的JAX-RPC(JavaAPIforXML-basedRPC,用于基于XML的RPC的JavaAPI)之前,应先学习XML、SOAP和WSDL。在读者学完本书并掌握J2EEWeb服务之后,本书仍然可作为您一本非常有价值的参考手册。读者可以在日常工作中通过本书查找Web服务标准以及J2EE1.4WebServicesAPI方面的信息。本书分7大部分和一个绪论篇(即第1章),每一部分由两章或多章组成,分别介绍各个特定的Web服务标准或J2EEAPI。各部分均以引言开始,该引言介绍了如何学习本部分的各章节、读者应当学习哪些章节、哪些章节可以有选择地学习。本书各章均采用了4级标题形式,而且这样的标题特别适用于参考手册,因为它可以使读者非常方便地与同事讨论某一主题。本书还提供了一些附录,这些附录涵盖了许多重要的内容,其中包括XML正则表达式、Base64编码、DTD、带附件的SOAP消息以及RPC/Encoded通信等。

作者简介

  蒙松-哈菲现为JavaCommunityProcessJ2EE1.4和EJB2.1专家组的成员,是ApacheJ2EEApplicationServerProject的创始人,也是J2EEWeb服务实现领域的知名专家。他编写的EnterpriseJavaBeans曾4次荣获畅销图书奖:先后于2001年荣获JavaPRO读者评选的最佳高级Java图书奖、于1999年荣获“Java开发人员杂志”编辑评选的最佳Java图书奖,以及于2001年和2002年荣获Amazon评选的最佳图书奖。此外,他编写的JavaMessageService在2002年也荣获“Java开发人员杂志”读者评选的最佳Java图书奖。

图书目录

目 录
第1章 J2EE 1.4 Web Services概述 1
1.1 J2EE平台 1
1.2 Web服务技术 2
1.2.1 WS-I Basic Profile 1.0 4
1.2.2 XML 5
1.2.3 SOAP 5
1.2.4 WSDL 6
1.2.5 UDDI 7
1.3 J2EE Web Services API 7
1.3.1 JAX-RPC 8
1.3.2 SAAJ 8
1.3.3 JAXR 8
1.3.4 JAXP 9
1.4 小结 9
第Ⅰ部分 XML
第2章 XML基础知识 13
2.1 XML入门 13
2.1.1 XML文档实例 15
2.1.2 剖析XML文档 15
2.1.3 处理XML文档 18
2.2 XML命名空间 20
2.2.1 使用命名空间示例 20
2.2.2 默认命名空间、前缀和限定名称 22
2.3 小结 24
第3章 W3C XML模式语言 25
3.1 XML模式基础知识 25
3.1.1 Web服务中XML模式优于DTD的原因 25
3.1.2 XML模式文档 26
3.1.3 简单类型 27
3.1.4 复杂类型 31
3.1.5 在模式中声明全局元素 37
3.1.6 限定元素与非限定元素 40
3.1.7 指定模式和确定模式的位置 42
3.2 高级XML模式 44
3.2.1 复杂类型的继承性 44
3.2.2 简单类型的继承性 49
3.2.3 列表类型与联合类型 52
3.2.4 匿名类型 54
3.2.5 导入模式和包含模式 55
3.3 小结 59
第Ⅱ部分 SOAP与WSDL
第4章 SOAP 63
4.1 SOAP的基本结构 65
4.2 SOAP命名空间 68
4.3 SOAP头 73
4.3.1 actor属性 75
4.3.2 mustUnderstand属性 78
4.3.3 WS-I一致性文件头 80
4.3.4 有关文件头的进一步说明 81
4.4 SOAP体 81
4.5 SOAP消息传递模式 82
4.5.1 Document/Literal消息传递模式 82
4.5.2 RPC/Literal消息传递模式 83
4.5.3 消息传递模式与消息传递交换模式 84
4.5.4 其他消息传递模式 85
4.6 SOAP错误 85
4.6.1 faultcode元素 86
4.6.2 faultstring元素 89
4.6.3 faultactor元素 90
4.6.4 detail元素 90
4.6.5 关于错误的进一步说明 91
4.7 SOAP与HTTP 92
4.7.1 传输带HTTP POST消息的SOAP 92
4.7.2 HTTP响应代码 93
4.7.3 进一步说明HTTP 94
4.8 小结 95
第5章 WSDL 96
5.1 WSDL的基本结构 97
5.2 WSDL声明:definitions元素、types元素和import元素 100
5.2.1 XML声明 100
5.2.2 definitions元素 100
5.2.3 types元素 101
5.2.4 import元素 102
5.3 WSDL抽象接口:message元素、portType元素和operation元素 103
5.3.1 message元素 103
5.3.2 portType元素 107
5.3.3 operation元素 108
5.4 WSDL消息传递交换模式 109
5.4.1 请求/响应消息传递 110
5.4.2 单向消息传递 110
5.4.3 通知和恳求/响应消息传递 111
5.5 WSDL实现:binding元素 111
5.6 WSDL实现:service元素和port元素 121
5.7 WS-I一致性声明 122
5.8 小结 122
第Ⅲ部分 UDDI
第6章 UDDI数据结构 125
6.1 businessEntity结构 127
6.1.1 businessEntity元素和businessKey属性 129
6.1.2 discoveryURL元素 129
6.1.3 name元素 130
6.1.4 description元素 130
6.1.5 contacts元素 130
6.1.6 businessServices元素 131
6.1.7 identifierBag元素 132
6.1.8 categoryBag元素 133
6.2 businessService结构和bindingTemplate结构 136
6.2.1 businessService结构 137
6.2.2 bindingTemplate结构 138
6.3 tModel结构 140
6.3.1 用于WSDL文档的tModel 141
6.3.2 用作分类法标识符的tModel 142
6.3.3 uddi-org:types tModel 144
6.3.4 校验tModel与非校验tModel 145
6.3.5 tModel XML模式 146
6.4 publisherAssertion结构 149
6.5 UUID密钥 150
6.6 WS-I一致性声明 151
6.7 小结 151
第7章 UDDI查询API 152
7.1 UDDI SOAP消息传递概述 152
7.2 查询操作 154
7.2.1 查找操作 154
7.2.2 取出操作 170
7.3 小结 176
第8章 UDDI发布API 178
8.1 操作定义与有效负载 178
8.1.1 授权操作 179
8.1.2 保存操作 182
8.1.3 删除操作 189
8.1.4 取出操作 195
8.2 错误消息 202
8.3 小结 205
第Ⅳ部分 JAX-RPC
第9章 JAX-RPC概述 209
9.1 服务器端编程模型 209
9.1.1 JSE 209
9.1.2 Enterprise JavaBean端点 210
9.2 客户端编程模型 211
9.2.1 生成的占位程序 212
9.2.2 动态代理 214
9.2.3 DII 214
9.3 其他JAX-RPC事宜 215
9.4 SAAJ 215
9.5 小结 215
第10章 JAX-RPC服务端点 216
10.1 简单JSE示例 216
10.2 JSE运行时环境 217
10.2.1 Servlet:JSE的基础 218
10.2.2 JNDI环境命名上下文 219
10.2.3 ServletEndpointContext接口与ServiceLifecycle接口 223
10.3 多线程与JSE 230
10.4 小结 231
第11章 JAX-RPC EJB端点 232
11.1 Enterprise JavaBean基础知识 232
11.1.1 事务简介 232
11.1.2 EJB 234
11.1.3 小结 239
11.2 Enterprise JavaBean Web服务 239
11.2.1 简单示例 239
11.2.2 EJB运行时环境 242
11.3 小结 247
第12章 JAX-RPC客户API 248
12.1 生成的占位程序 248
12.1.1 端点接口 249
12.1.2 生成的占位程序 250
12.1.3 服务接口 251
12.1.4 在J2EE中使用生成的占位程序 252
12.2 动态代理 256
12.2.1 使用动态代理 257
12.2.2 深层探索 260
12.3 DII 261
12.3.1 与WSDL文档一起使用DII 261
12.3.2 不通过WSDL文档使用DII 264
12.3.3 与DII一起使用单向消息传递 265
12.3.4 JAX-RPC标准属性与常数 265
12.4 小结 267
第13章 SAAJ 269
13.1 简单SAAJ示例 270
13.2 创建SOAP消息 272
13.2.1 MessageFactory类 272
13.2.2 SaajOutputter类 274
13.2.3 SOAPMessage类 275
13.3 使用SOAP文档 276
13.3.1 SOAPPart类型与SOAPEnvelope类型 277
13.3.2 SOAPFactory类与Name类型 278
13.3.3 SOAPElement类型 280
13.3.4 Node类型 282
13.3.5 SOAPHeader类型 283
13.3.6 SOAPHeaderElement类型 286
13.3.7 SOAPBody类型 287
13.3.8 SOAPBodyElement类型 287
13.3.9 Text类型 288
13.3.10 SOAPConstants类 289
13.3.11 SOAPException类 289
13.3.12 SOAPFactory类型与SOAPElement类型 290
13.4 SOAP错误 291
13.4.1 SOAPFault类型 292
13.4.2 Detail类型 295
13.4.3 SOAPFaultElement类型 295
13.4.4 DetailEntry类型 296
13.5 与SAAJ一起传输SOAP消息 296
13.6 SAAJ 1.2与DOM 2 297
13.7 小结 300
第14章 消息处理程序 301
14.1 简单示例 301
14.1.1 定义消息处理程序类 301
14.1.2 定义WSDL文档 305
14.1.3 生成服务接口与端点接口 306
14.1.4 配置消息处理程序 307
14.1.5 在J2EE组件中使用消息处理程序 308
14.2 处理程序链与处理顺序 309
14.2.1 返回值与处理顺序 313
14.2.2 异常与处理顺序 315
14.3 处理程序运行时环境 316
14.3.1 无状态与多线程 316
14.3.2 JNDI环境命名上下文 317
14.3.3 消息处理程序的生命周期 319
14.3.4 MessageContext类型 321
14.4 小结 323
第15章 将Java映射到WSDL和XML 324
15.1 将WSDL映射到Java 324
15.1.1 WSDL与端点接口 325
15.1.2 声明多个部分 326
15.1.3 定义多个操作 327
15.1.4 单向消息传递 328
15.2 将XML映射到Java 329
15.2.1 XML模式内置简单类型 329
15.2.2 XML模式复杂类型 331
15.2.3 数组 334
15.2.4 枚举 334
15.2.5 SOAPElement:在Document/Literal编码中支持非标准类型 336
15.2.6 SOAPElement:xsd:any元素 341
15.2.7 Nillable元素 342
15.3 Holder 343
15.3.1 复制传递:IN参数 344
15.3.2 引用传递:INOUT参数和OUT参数 344
15.3.3 Holder类:在JAX-RPC中支持INOUT参数和OUT参数 346
15.3.4 从WSDL映射Holder类型 347
15.4 错误与Java异常 354
15.5 小结 359
第Ⅴ部分 JAXR
第16章 JAXR基础知识 363
16.1 使用UDDI测试注册表 363
16.2 与UDDI注册表建立连接 364
16.2.1 获得ConnectionFactory 365
16.2.2 配置ConnectionFactory 366
16.2.3 连接到UDDI注册表 368
16.2.4 对UDDI注册表进行身份验证 368
16.2.5 在J2EE中获得JAXR连接 369
16.3 使用RegistryService对象与BusinessLifeCycleManager对像 370
16.3.1 RegistryService接口 372
16.3.2 使用BusinessLifeCycleManager对象 374
16.4 BulkResponse类型 377
16.4.1 BulkResponse接口 378
16.4.2 在示例中处理BulkResponse 379
16.5 异常 379
16.6 小结 379
第17章 JAXR商务对象 381
17.1 RegistryObject接口 382
17.2 Organization信息对象 385
17.2.1 businessEntity 388
17.2.2 ExternalLinks 389
17.2.3 Name和Description 390
17.2.4 User 394
17.2.5 分类 402
17.2.6 外部标识符 411
17.2.7 服务 416
17.3 小结 416
第18章 JAXR技术对象 417
18.1 Service信息对象与ServiceBinding信息对象 417
18.1.1 创建新Service对象 419
18.1.2 创建新ServiceBinding对象 420
18.1.3 Service接口 421
18.1.4 ServiceBinding接口 422
18.2 Concept信息对象 423
18.2.1 创建新Concept 425
18.2.2 Concept接口 428
18.3 SpecificationLink信息对象 432
18.3.1 使用Specification对象 432
18.3.2 SpecificationLink接口 435
18.4 Association信息对象 436
18.5 预定义枚举 440
18.5.1 AssociationType枚举 441
18.5.2 URLType枚举 441
18.5.3 ExtensibleObject接口与Slot接口 442
18.6 小结 443
第19章 JAXR查询API与发布API 444
19.1 将JAXR映射到UDDI查询API 444
19.1.1 使用搜索准则 448
19.1.2 findXXX( )方法 454
19.2 将JAXR映射到UDDI发布API 458
19.3 小结 459
第Ⅵ部分 JAXP
第20章 SAX2 463
20.1 用SAX解析:XMLReaderFactory类与XMLReader类 464
20.2 ContentHandler接口与DefaultHandler接口 465
20.2.1 startDocument( )方法与endDocument( )方法 465
20.2.2 startElement()方法与endElement()方法 469
20.2.3 startPrefixMapping( )方法与endPrefixMapping( )方法 473
20.2.4 characters( )方法 474
20.2.5 其他ContentHandler方法 475
20.2.6 其他SAX2侦听者接口 476
20.3 用W3C XML模式检验 477
20.4 小结 478
第21章 DOM 2 479
21.1 用DOM解析:DocumentBuildFactory类与DocumentBuilder类 480
21.2 节点 481
21.2.1 依赖于类型的特性 484
21.2.2 XML名称方法 486
21.2.3 属性方法 488
21.2.4 所有者(Owner)文档 489
21.2.5 导航节点树 489
21.2.6 用于子对象管理的方法 491
21.2.7 其他方法 491
21.3 构建DOM文档 492
21.4 复制节点 498
21.5 小结 500
第Ⅶ部分 部署
第22章 J2EE部署 503
22.1 J2EE部署过程概述 503
22.2 J2EE Web Services部署 504
22.2.1 用J2EE端点开始Web服务 504
22.2.2 用WSDL开始Web服务 506
22.2.3 JAX-RPC映射文件 508
22.2.4 用于J2EE组件的部署描述器 508
22.3 部署JSE 509
22.3.1 将JSE打包到WAR文件 509
22.3.2 web.xml文件 510
22.4 部署EJB端点 515
22.4.1 说明性事务属性 515
22.4.2 说明性安全属性 517
22.5 服务引用 519
22.5.1 service-ref-name元素 521
22.5.2 service-interface元素 521
22.5.3 wsdl-file元素与service-qname元素 522
22.5.4 jaxrpc-mapping-file元素 523
22.5.5 port-component-ref元素 524
22.5.6 显示元素 525
22.5.7 handler元素 525
22.6 小结 531
第23章 Web服务描述器 532
23.1 wsdl-file元素与wsdl-port元素 533
23.2 port-component-name元素 534
23.3 service-endpoint-interface元素 535
23.4 service-impl-bean元素 536
23.5 jaxrpc-mapping-file元素 537
23.6 handler元素 538
23.6.1 handler-name元素 539
23.6.2 handler-class元素 539
23.6.3 init-param元素 539
23.6.4 soap-header元素 540
23.6.5 soap-role元素 541
23.6.6 通过处理程序进行处理 542
23.6.7 显示元素 542
23.7 小结 542
第24章 JAX-RPC映射文件 543
24.1 轻量级JAX-RPC映射文件的条件 543
24.2 轻量级映射示例 544
24.3 重量级映射示例 546
24.4 映射文件剖析 549
24.4.1 java-wsdl-mapping元素 549
24.4.2 package-mapping元素 550
24.4.3 java-xml-type-mapping元素 552
24.4.4 exception-mapping元素 554
24.4.5 service-interface-mapping元素 556
24.4.6 service-endpoint-interface-mapping元素 563
24.5 小结 535
第Ⅷ部分 附 录
附录A XML DTD 567
附录B XML模式正则表达式 571
B.1 符号集 571
B.2 限定符 572
B.3 其他元符号 572
B.4 应用示例 573
B.4.1 ISBN(国际标准书号) 573
B.4.2 美国邮政编码 574
B.4.3 美国电话号码 574
B.4.4 英国邮政编码 574
附录C Base64编码 575
附录D SOAP RPC/Encoded 576
D.1 soap:encodingStyle特性 576
D.2 操作结构 579
D.3 简单类型 580
D.4 复杂类型 581
D.5 数组类型 582
D.5.1 数组的大小 585
D.5.2 数组的其他功能 586
D.6 引用 586
D.7 小结 589
附录E SwA 590
E.1 MIME基础知识 590
E.2 在SOAP中使用MIME 593
E.3 小结 595
附录F SAAJ附件 597
F.1 JAF 598
F.1.1 DataHandler类 599
F.1.2 DataContentHandler类 600
F.1.3 DataSource类 603
F.2 SAAJ与JAF:AttachmentPart对象 605
F.2.1 数据对象 607
F.2.2 createAttachmentPart( )方法 607
F.2.3 setContent( )方法与setDataHandler( )方法 608
F.2.4 getContent( )方法 609
F.2.5 MIME文件头方法 610
F.3 SOAPPart对象 613
F.3.1 XSLT 615
F.3.2 TrAX 615
F.3.3 使用StreamSource 615
F.3.4 DOMSource 616
F.3.5 SAXSource 616
F.4 SOAPEnvelope 617
F.4.1 getHeader( )方法、getBody( )方法与addBody( )方法 617
F.4.2 createName( )方法 617
F.5 小结 618
附录G JAX-RPC和SwA 619
G.1 JAF:DataContentHandler类型和DataSource类型 619
G.2 简单示例 620
G.3 将MIME类型映射到Java 623
G.3.1 multipart/* MIME类型 624
G.3.2 text/xml类型与application/xml MIME类型 626
G.3.3 用作返回类型、INOUT和OUT参数的MIME附件 627
G.4 使用DataHandler类型和DataSource类型 630
G.5 小结 632
附录H 在没有WSDL文档的情况下使用JAX-RPC DII 633
参考资料 638

本目录推荐