第1章 Java EE 5和EJB 3.0概述 1
1.1 Java EE 5概述 1
1.1.1 Java EE 5基本架构 1
1.1.2 Java EE 5规范 3
1.1.3 Java EE 5中的Web组件 3
1.1.4 Java EE 5中的EJB组件 4
1.2 EJB 3.0开发环境的安装与配置 5
1.2.1 Java SE环境的安装和配置 5
1.2.2 Java EE环境的安装和配置 6
1.2.3 JBoss环境的安装和配置 11
1.2.4 Apach Ant的安装和配置 14
1.3 本书源代码的安装 15
1.4 小结 15
第2章 会话EJB开发方法概述 16
2.1 会话EJB简介 16
2.1.1 会话EJB的分类 16
2.1.2 会话EJB的结构 17
2.2 EJB 3.0无状态会话EJB的开发 18
2.2.1 无状态会话EJB的概念 18
2.2.2 无状态会话EJB的开发 19
2.2.3 无状态会话EJB的编译与部署 22
2.2.4 无状态会话EJB的使用和测试 25
2.3 EJB 2.X无状态会话EJB的开发 28
2.3.1 无状态会话EJB的开发 28
2.3.2 无状态会话EJB的部署 31
2.3.3 无状态会话EJB的使用和测试 34
2.4 EJB 3.0有状态会话EJB的开发 35
2.4.1 有状态会话EJB的概念 36
2.4.2 有状态会话EJB的开发 36
2.4.3 有状态会话EJB的测试 38
2.5 EJB 2.X有状态会话EJB的开发 41
2.5.1 EJB 2.X有状态会话EJB的开发 41
2.5.2 有状态会话EJB编译与部署 43
2.5.3 有状态会话EJB的使用和测试 45
2.6 EJB 3.0和EJB 2.X的比较 48
2.6.1 组件结构的优化 48
2.6.2 API的污染性 49
2.7 小结 51
第3章 会话EJB组件设计 53
3.1 多接口会话EJB组件 53
3.1.1 多接口会话EJB组件开发 53
3.1.2 多接口会话EJB组件的使用 56
3.2 无污染EJB组件设计 58
3.2.1 非正规接口实现 58
3.2.2 使用类注解(Attribute)法设计EJB组件 59
3.2.3 使用部署文件开发EJB组件 53
3.2.4 EJB组件开发方法比较 67
3.3 EJB接口参数设计 68
3.4 EJB接口异常设计 71
3.4.1 EJB组件接口中的应用异常 72
3.4.2 EJB组件接口中的系统异常 77
3.5 EJB组件的配置文件 82
3.5.1 EJB组件配置文件格式和读取语法 82
3.5.2 EJB组件配置文件读取实例 84
3.6 小结 88
第4章 会话EJB组件生命周期 89
4.1 无状态会话组件生命周期 89
4.1.1 无状态会话EJB的3种状态 89
4.1.2 无状态EJB组件生命事件 90
4.1.3 无状态EJB组件生命事件处理 91
4.1.4 无状态EJB组件生命事件实例 92
4.2 有状态会话组件生命周期 97
4.2.1 有状态会话EJB的生命周期 97
4.2.2 有状态EJB生命周期中的事件 99
4.2.3 有状态EJB生命事件处理 100
4.2.4 有状态EJB生命事件处理实例 101
4.3 小结 106
第5章 JMS与消息队列 107
5.1 JMS概述 107
5.1.1 JMS消息类型 107
5.1.2 JMS基本模型 108
5.1.3 JMS消息队列操作模式 110
5.2 JBoss MQ简介 111
5.2.1 在JBoss MQ上创建队列 111
5.2.2 在JBoss MQ上创建主题 113
5.3 JMS消息队列操作模型 114
5.3.1 JMS消息操作框架 114
5.3.2 JMS消息操作对象体系 115
5.3.3 JMS消息操作对象体系的创建 116
5.4 JMS 1.0.2消息队列操作 117
5.4.1 PTP消息队列操作接口 117
5.4.2 主题消息的发布与订阅 126
5.5 JMS 1.1消息队列操作 130
5.5.1 消息的发送 130
5.5.2 消息接收 131
5.6 小结 134
第6章 消息驱动Bean(MDB) 135
6.1 MDB组件概述 135
6.1.1 MDB基本结构 135
6.1.2 MDB组件属性 137
6.2 MDB组件开发方法 140
6.2.1 基于标注的MDB设计 141
6.2.2 基于配置文件的MDB设计 146
6.2.3 两种开发方法的比较 150
6.3 Topic型MDB组件设计 150
6.4 MDB组件生命周期 154
6.4.1 消息驱动EJB的3种状态 154
6.4.2 MDB组件生命事件 155
6.4.3 MDB生命事件处理 156
6.5 MDB负载均衡器设计 162
6.6 小结 167
第7章 Web Service概述 168
7.1 Web Service的基本特征 168
7.1.1 Web Service组件模型 168
7.1.2 Web Service组件访问模型 169
7.2 设计第一个Web服务 170
7.2.1 Web Service组件设计 170
7.2.2 Web Service组件的编译与部署 171
7.2.3 Web Service客户代理 173
7.2.4 Web Service客户程序 175
7.3 Java Web Service技术小结 177
7.4 小结 178
第8章 WSDL接口设计与SOAP协议 179
8.1 本章技术准备 179
8.2 WSDL文件整体结构 180
8.3 接口数据类型 181
8.4 WSDL接口 184
8.4.1 接口要素 184
8.4.2 接口实现细节 185
8.5 WSDL文件生成方法 188
8.5.1 通过SDK工具创建WSDL文件 188
8.5.2 通过发布生成WSDL 190
8.6 SOAP基本语法 191
8.7 通过SOAP使用Web Service 192
8.7.1 通过Java语言调用Web Service 192
8.7.2 通过JavaScript平台调用Web Service 195
8.8 小结 197
第9章 Web Service设计初步 198
9.1 Web Service设计 198
9.1.1 使用WebMethod标注定义Web服务接口 198
9.1.2 对Web Service接口进行定制 200
9.1.3 基于接口的WebService 204
9.2 Web Service调用方法 206
9.3 可移植Web Service调用 209
9.4 小结 211
第10章 Web Service组件高级特性 212
10.1 Web Service参数传递原则 212
10.2 Web Service参数定义 213
10.2.1 自定义参数 213
10.2.2 自定义参数类型传递 218
10.3 Web Service集合类型 220
10.3.1 基于数组的参数传递 220
10.3.2 基于链表的参数传递 225
10.4 Web Service异常 227
10.5 小结 232
第11章 Java持久化与对象数据库 233
11.1 对象数据库与JPA 233
11.1.1 面向对象数据库(OODB) 234
11.1.2 伪对象数据库与ORM软件 234
11.1.3 ORM软件与JPA 235
11.2 JPA简介 236
11.3 JPA程序初步 239
11.3.1 伪对象数据库与持久化单元 239
11.3.2 设计伪对象数据库结构 240
11.3.3 操作伪面向对象数据库 245
11.3.4 程序的编译运行 249
11.4 在会话EJB中使用JPA 250
11.4.1 Java EE中伪对象数据库构建 250
11.4.2 会话EJB对JPA的调用 253
11.4.3 测试程序设计 255
11.5 在Web Service中使用JPA 257
11.5.1 Web Service对JPA的调用 258
11.5.2 测试程序设计 259
11.6 小结 260
第12章 JPA实体Bean 261
12.1 实体Bean基本映射 261
12.1.1 实体Bean对应的表结构 261
12.1.2 基本映射 262
12.1.3 表和列的映射 266
12.2 JPA实体Bean的操作 272
12.2.1 实体对象检索 273
12.2.2 实体对象的状态更新 274
12.2.3 实体对象的保存 276
12.2.4 实体对象的删除 278
12.2.5 对象的合并与刷新 279
12.3 JPA实体Bean生命周期 281
12.3.1 实体Bean状态特点 281
12.3.2 持久对象生命事件 284
12.4 持久化单元与实体Bean 289
12.4.1 持久化单元的基本概念 289
12.4.2 位置关联持久化单元中的Bean 290
12.4.3 实体Bean独立部署 291
12.5 小结 298
第13章 实体Bean主键映射 299
13.1 标识主键 299
13.1.1 手工设置型主键映射 299
13.1.2 Identity主键映射 300
13.1.3 Sequence主键映射 304
13.1.4 TableGenerator主键映射 305
13.2 复合主键映射 310
13.2.1 数据库表结构定义 310
13.2.2 使用IdClass映射复合主键 311
13.2.3 EmbeddedId主键映射 316
13.3 小结 321
第14章 实体Bean属性映射 322
14.1 实体Bean数据加载规则 322
14.2 基本属性映射 328
14.3 LOB属性映射 332
14.3.1 批量映射模式 333
14.3.2 缓存映射 338
14.3.3 对象序列化 344
14.3.4 基于XML的LOB字段映射 348
14.4 自定义对象映射 349
14.4.1 自定义枚举映射 349
14.4.2 自定义非持久类映射 354
14.5 小结 359
第15章 实体Bean关联映射 360
15.1 单一Bean实体属性映射 360
15.1.1 实体对象模型 360
15.1.2 对象在关系型数据库中的存储结构 364
15.1.3 关联关系测试 365
15.1.4 XML关联映射 367
15.2 JPA级联特性 368
15.3 集合属性映射 369
15.3.1 普通集合映射 370
15.3.2 链表集合映射 376
15.3.3 Map集合映射 379
15.4 双向一对多关联映射 383
15.4.1 双向多对一实体关联 383
15.4.2 双向关联的对称性问题 386
15.4.3 对双向多对一关联的测试 387
15.5 双向多对多映射 390
15.5.1 对象在数据库中的存储结构 391
15.5.2 实体间的双向多对多关联 392
15.5.3 双向多对多关联实体操作 396
15.6 小结 398
第16章 基于JPA的伪对象数据库设计 400
16.1 伪对象数据库与域模型 400
16.1.1 域模型中的实体设计 401
16.1.2 伪对象数据库的设计 402
16.2 伪对象数据库底层结构 409
16.3 伪对象数据库测试 411
16.4 小结 414
第17章 对象查询语言EJB QL 415
17.1 EJBQL检索语句 416
17.1.1 对象检索语句 416
17.1.2 对象属性检索语句 416
17.1.3 distinct与orderby子句 417
17.2 EJB QL条件语句 418
17.2.1 between、in与like语句 418
17.2.2 is null、is empty和member of语句 419
17.2.3 子查询 420
17.3 对象操作语句 420
17.4 EJB QL执行API 421
17.4.1 JPA数据库操作API 421
17.4.2 对象分页检索 423
17.4.3 对象属性检索 426
17.4.4 对象操作 427
17.5 EJB QL参数 430
17.6 EJB QL本地查询 432
17.7 使用配置文件管理查询脚本 435
17.8 小结 438
第18章 EJB反向依赖注入 439
18.1 反向依赖注入 439
18.1.1 依赖与依赖注入 439
18.1.2 反向依赖注入原则 441
18.1.3 反向依赖注入设计方法概述 443
18.2 EJB反向依赖注入案例 446
18.3 JNDI全局注册表 450
18.4 EJB反向依赖注入机制 452
18.4.1 ENC的基本概念 452
18.4.2 ENC注册记录管理 453
18.4.3 ENC注册记录的检索 456
18.5 EJB注入点类型 459
18.5.1 持久化单元注入 459
18.5.2 资源型注入 464
18.6 小结 469
第19章 EJB切面程序设计 470
19.1 切面的基本概念 470
19.2 EJB 3.0切面类型 476
19.2.1 生命周期事件切面 476
19.2.2 切面的变体 479
19.3 EJB 3.0切入点定义方法 482
19.4 切面行为特征 484
19.4.1 切面组件反向依赖注入 484
19.4.2 切面逻辑中的异常处理 489
19.5 小结 491
第20章 事务 492
20.1 事务的基本特征 492
20.2 声明性事务 494
20.2.1 声明性事务案例 494
20.2.2 声明性事务模式 497
20.2.3 声明性事务的控制 498
20.3 程序性事务 499
20.4 EJB组件的事务特性 502
20.4.1 无状态会话组件事务特征 502
20.4.2 MDB组件事务 502
20.4.3 有状态会话EJB组件事务 503
20.4.4 实体Bean组件事务 508
20.5 小结 511
第21章 高校教室综合信息管理系统 512
21.1 系统基本需求 512
21.2 系统概要设计 514
21.3 系统开发模块划分 517
21.4 商务逻辑层设计 521
21.5 客户端软件设计 525
21.5.1 Web Service代理模块 526
21.5.2 Classroom实体管理界面模块 528
21.5.3 客户端系统的版权界面模块 540
21.5.4 客户端系统引导模块 542
21.6 小结 542
附录 软件调试环境 543