《J2EE Web Services高级编程》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:(美)Richard Monson-Haefel著;崔洪斌,王爱民译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2005
  • ISBN:7302094349
  • 页数:641 页
图书介绍:本书完整详尽地描述和介绍了J2EE Web服务,分析了核心Web服务技术CXML,SOAP,WSDL和UDDI以及各种J2EE Web Services API(JAX-RPC, SAAJ. JAXR和JAXP),并详细阐述了错误处理、类型映射,部署和JAX-RPC处理程序。本书是第一本完整介绍WS-I 1.0 web服务标准以及它们与J2EE 1.4组件相结合的书籍。讲述了通俗易懂,具有极高的参考价值。

第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 13

第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 63

第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 125

第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 tModelXML模式 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 209

第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 363

第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 463

第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

第Ⅶ部分 部署 503

第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 webxml文件 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

第Ⅷ部分 附录 567

附录A XMLDTD 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 Dll 633

参考资料 638