第一篇 J2EE 框架下的 EJB 3
第1章 J2EE 概述 3
1.1 企业开发体系结构 3
1.2 J2EE 平台基础 5
1.3 J2EE 1.3核心技术 8
1.3.1 J2EE 标准服务 8
1.3.2 J2EE 的未来 11
1.4 对比.NET 与 Sun ONE 13
1.4.1 Microsoft.NET 开发框架 13
1.4.2 Sun ONE 开发框架 15
1.4.3 Sun ONE 与.NET 的战略对比 19
1.5 服务器端组件结构 22
第2章 EJB 基础 27
2.1 组件概述 27
2.2 EJB 组件框架 28
2.3 EJB 组件 32
2.4 EJB 项目案例 34
2.5 EJB 开发步骤 35
2.5.1 定义远程接口 36
2.5.2 定义本地接口 36
2.5.3 定义 Bean 类 37
2.5.4 部署 J2EE 应用 37
2.5.5 编写客户端 39
2.6 会话 Bean 40
2.5.6 编译与运行客户端 40
2.6.1 状态管理 41
2.6.2 何时使用会话 Bean 41
2.7 实体 Bean 42
2.7.1 会话 Bean 与实体 Bean 区别 42
2.7.2 何时使用实体 Bean 44
2.8 消息驱动 Bean 44
2.9 EJB 容器与服务器 45
2.10 EJB 编程限制 47
2.11 从 EJB 1.1到 EJB 2.0 49
3.1 如何开发 EJB 组件 65
第3章 无状态会话 Bean 65
第二篇 开发与部署 65
3.2 如何调用 Bean 75
3.3 无状态会话 Bean 生命周期 79
第4章 有状态会话 Bean 81
4.1 有状态会话 Bean 特点 81
4.2 购物车示例 82
4.3 有状态会话 Bean 的生命周期 87
第5章 BMP 实体 Bean 89
5.1 实体 Bean 编程基础 89
5.2 银行账户示例 93
5.3 运行客户端程序 117
5.4 BMP 实体 Bean 的生命周期 118
第6章 CMP 实体 Bean 121
6.1 CMP 实体 Bean 的特点 121
6.2 容器管理持久化的实现 127
6.3 产品线示例 130
6.4 运行客户端程序 147
6.5 CMP 实体 Bean 的生命周期 147
第7章 EJB QL 语言 149
7.1 EJB QL 术语 149
7.2 为什么需要 EJB QL 语言 150
7.3 EJB QL 语法 150
7.4 EJB QL 查询示例 158
7.5 BNF 图解 161
7.6 EJB QL 优势和局限 165
第8章 消息驱动 Bean 167
8.1 消息驱动 Bean 动机 167
8.2 Java 消息服务(JMS) 169
8.3 集成 JMS 和 EJB 174
8.4 开发消息 Bean 176
8.5 消息 Bean 探究 182
第9章 集成 RMI-IIOP 与 JNDI 191
9.1 理解 RMI 191
9.2 Java RMI-IIOP 193
9.3 JNDI 接口 203
9.4 集成 RMI-IIOP 和 JNDI 211
第10章 应用客户端开发 215
10.1 EJB 应用客户端概述 215
10.2 会话 Bean 客户视图 216
10.3 实体 Bean 客户视图 217
10.4 消息 Bean 客户视图 219
10.5 客户事务管理 220
10.6 EJB 客户端开发示例 221
10.6.1 独立的 Java 应用 221
10.6.2 J2EE 应用客户端 221
10.6.3 Servlet 客户端 224
10.6.4 JavaServer Pages 组件 227
10.6.5 其他企业 Bean 234
第11章 容器与 Bean 239
11.1 Bean 的调用 239
11.2 资源工厂 241
11.3 环境属性 243
11.4 EJB 安全 245
11.5 对象句柄 254
第12章 EJB 应用服务器 257
12.1 应用服务器概述 257
12.2 应用服务器功能 258
12.3 几种应用服务器产品介绍 259
12.4 如何选择 EJB 应用服务器 263
12.5 EJB 服务器评测 269
第13章 部署 EJB 279
13.1 XML 简介 279
13.1.1 XML 的定义 279
13.1.2 XML 语法 279
13.1.3 DTD 声明 282
13.2 部署描述符 285
13.3 EJB-JAR 文件 289
13.4 应用服务器部署 291
13.4.1 Hello WorldLdap:LDAP 无状态会话 Bean 291
13.4.2 ProfileTest:CMP 实体 Bean 296
14.1 ACID 特征 301
第14章 事务 301
第三篇 深入 EJB 开发 301
14.2 容器管理事务 302
14.3 Bean 管理的事务 307
14.4 隔离与数据库锁定 311
14.5 分布式事务 312
14.6 设计 EJB 事务会话 315
第15章 BMP 和 CMP 数据关系 319
15.1 CMP 和 BMP 的关系区别 319
15.2 集的势 320
15.3 方向性 333
15.4 聚合与合成、级联删除 338
15.5 递归与循环关系 340
15.6 引用完整性 341
第16章 持久化 EJB 347
16.1 关于持久化的基本构架 347
16.1.1 数据还是对象 347
16.1.2 会话 Bean 管理的持久化 349
16.1.3 实体 Bean 持久化 371
16.2 在关系型数据库中存储对象 378
16.2.1 并发控制的基础 380
16.2.2 映射 EJB 到关系数据库 381
16.3 版本化 EJB 387
16.4 与遗留数据共存的设计 388
17.1 理解 CORBA 393
第17章 集成 CORBA 393
17.1.1 理解 CORBA 如何工作 394
17.1.2 RMI-CORBA 互用 398
17.1.3 使 RMI 和 CORBA 一起工作 403
17.2 结合 CORBA 与 EJB 404
第18章 可伸缩性设计 407
18.1 大型 EJB 系统概念 407
18.1.1 大型系统是什么 407
18.1.2 大型 J2EE 系统结构 409
18.2 EJB 集群 416
18.2.1 怎样把 EJB 集群起来 416
18.2.2 集群无状态会话 Bean 420
18.2.3 集群有状态会话 Bean 422
18.2.4 集群实体 Bean 424
18.2.5 集群消息驱动 Bean 426
18.2.6 在一个集群中部署 EJB 427
18.2.7 其他集群 EJB 问题 428
18.2.8 BEA WebLogic Server 6.0集群示例 429
第19章 性能优化 431
19.1 有状态还是无状态 431
19.2 消息传递还是 RMI-IIOP 433
19.3 保证响应时间 434
19.4 获得 EJB 单体 435
19.5 使用会话和实体 Bean 436
19.6 实体 Bean 的性能调整 437
19.7 本地接口还是远程接口 438
19.8 调试 EJB 438
19.9 资源分类 439
19.10 装配组件 440
19.11 在 EJB 中使用 XML 441
19.12 与遗留系统集成 441
第20章 EJB 项目管理 445
20.1 项目基础 445
20.2 构建与发布 461
A.1 javax.ejb 包 467
附录 A EJB API 467
A.2 javax.ejb.spi 包 473
A.3 javax.ejb.deployment 包 474
附录 B J2EE 兼容应用服务器 475
B.1 J2EE SDK 测试配置 476
B.2 ATG Dynamo 应用服务器配置 478
B.3 BEA WebLogic 服务器6.1配置 479
B.4 Borland AppServer4.5配置 481
B.5 Fujitsu INTERSTAGE 配置 481
B.6 Hitachi Cosminexus 服务器标准版配置 483
B.7 HP Bluestone Total-e-Server 配置 483
B.8 IBM WebSphere 应用服务器配置 484
B.9 IONA iPortal 应用服务器1.3配置 487
B.10 iPlanet 应用服务器6.0配置 488
B.11 Macromedia Jrun 服务器配置 488
B.12 Oracle 9?应用服务器配置 489
B.13 Persistence PowerTier7.0配置 489
B.14 SilverStream 应用服务器配置 490
B.15 Sybase EAServer 配置 492
B.16 TogetherSoft ControlCenter 配置 493
B.17 Trifork 企业应用服务器配置 494
B.18 J2EE SDK v1.2配置 494
B.19 COOL:Joe 配置-1.3测试 495
B.20 J2EE SDK v1.3配置 496