Oracle WebLogic Server开发权威指南
基本信息
原书名:Professional Oracle Weblogic Server
原出版社:Wrox
作者:(美)Robert Patrick Gregory Nyberg Philip Aston Josh Bregman Paul Done [作译者介绍]
译者:贺新征赵铭任鸿
出版社:清华大学出版社
ISBN:9787302269823
出版日期:2011 年11月
开本:16开
页码:651
版次:1-1
内容简介
《oracle weblogic server开发权威指南》关注于如何通过最新发布的oracle weblogic server 11g进行java ee开发、部署和管理。与其他介绍weblogic server和java ee技术的书籍不同,本书的内容较为深刻,针对的是中高级读者。而且,本书描述的是思路。不只是简单地罗列出解决问题的各种可选方案,而后教会读者自己去做决策,还提供了在应用程序开发和管理过程中能够使用的具体建议和最佳实践。本书构建并讲解的主要示例应用程序是一个真实复杂的应用程序,涵盖了很多java ee技术的许多特征,以及oracle weblogic server 119特有的技术。
《oracle weblogic server开发权威指南》并不是java ee技术和weblogic server环境的入门读物。这是一本高水平的书,对基本概念的描述很少,因此本书面向的读者是有经验的开发人员和weblogic server管理员,通过阅读本书他们可以将自己对这些技术的认识提升到更高水平。
目录
《oracle weblogic server开发权威指南》
第1章 在weblogic中构建web
应用程序 1
1.1 java servlet和jsp中的重要
概念 1
1.1.1 servlet的特征 1
1.1.2 jsp的特征 6
1.2 web应用程序最佳实践 11
1.2.1 保证正确的错误处理 11
1.2.2 使用jstl标记减少scriptlet
代码 13
1.2.3 对选定的行为使用自定义标记 16
1.2.4 对常见行为使用servlet过滤器 18
1.2.5 使用servlet和jsp页面创建
excel文件 22
1.2.6 查看产生的servlet代码 25
1.3 本章回顾 26
第2章 选择web应用程序体系结构 27
2.1 体系结构的关键概念 27
2.1.1 java ee应用程序的层次 27
2.1.2 mvc体系结构 28
2.1.3 通用java ee设计模式 29
2.2 表示层体系结构的选择 29
2.2.1 表示层需求 29
2.2.2 有关体系结构的其他考虑 39
2.3 可选的表示层体系结构 39
2.3.1 以jsp为核心的体系结构 40
2.3.2 以servlet为核心的体系结构:
struts 41
2.3.3 以servlet为核心的体系结构:
spring mvc 42
2.4 本章回顾 45
第3章 设计java ee应用程序示例 47
3.1 应用程序需求 47
3.2 业务领域模型 48
3.3 表示层需求 48
3.4 web应用程序体系结构 50
3.5 表示方法 51
3.5.1 自组装 52
3.5.2 母版页组装 55
3.5.3 使用tiles框架进行外部
视图组装 56
3.6 业务层接口 58
3.6.1 控制器调用业务服务 58
3.6.2 控制器为jsp填充表单 60
3.6.3 更新要求显式的服务调用 61
3.6.4 表示层组件之间的关系 61
3.7 本章回顾 62
第4章 构建web应用程序示例 63
4.1 应用程序组件概述 63
4.2 构建应用程序骨架 65
4.3 构建用户站点组件 65
4.3.1 预订信息组件 65
4.3.2 核心预订流程组件 67
4.3.3 提供服务组件 90
4.4 管理站点组件的结构 91
4.4.1 身份验证和授权组件 91
4.4.2 酒店维护组件 94
4.5 本章回顾 107
第5章 打包和部署weblogic web
应用程序 109
5.1 打包web应用程序 110
5.1.1 web应用程序目录结构 110
5.1.2 web应用程序描述符文件 112
5.1.3 预编译jsp组件 119
5.1.4 创建一个分解式 web应用
程序 121
5.1.5 创建一个web应用程序的
归档文件 125
5.2 部署web应用程序 126
5.2.1 自动部署 126
5.2.2 weblogic部署工具和ant
任务 128
5.2.3 weblogic控制台部署 130
5.2.4 为创建必要的用户
和组 132
5.3 本章回顾 133
第6章 在weblogic server中构建
企业javabean 135
6.1 ejb技术概述 135
6.2 ejb 3.0简介 136
6.3 ejb组件类型 137
6.3.1 无状态会话bean 137
6.3.2 有状态会话bean 139
6.3.3 消息驱动的bean 140
6.3.4 拦截器 141
6.4 java持久化api 142
6.4.1 jpa的历史 142
6.4.2 jpa概念 144
6.4.3 一个jpa示例 144
6.4.4 应用jpa 164
6.5 weblogic server ejb容器 165
6.5.1 ejb容器基础 165
6.5.2 weblogic server中ejb的
生命周期 165
6.6 通用的weblogic server ejb
特性 167
6.6.1 ejb的部署和重新部署 167
6.6.2 动态ejb编译 167
6.6.3 ejb的远程业务接口和jndi 168
6.6.4 ejb之间的引用 170
6.7 会话bean的特性 175
6.7.1 无状态会话ejb缓冲池 175
6.7.2 有状态会话ejb的缓存管理 176
6.7.3 有状态会话ejb的内存中
复制 178
6.7.4 指向会话bean的句柄 180
6.7.5 幂等方法 180
6.8 消息驱动的bean的特性 180
6.9 openjpa和kodo特性 181
6.9.1 kodo部署描述符文件 182
6.9.2 获取组 182
6.9.3 预先获取 184
6.9.4 乐观锁版本策略 184
6.9.5 大结果集 187
6.9.6 二级缓存 188
6.9.7 控制刷新行为 190
6.9.8 逆向管理 190
6.9.9 混合继承策略 191
6.9.10 预处理语句缓存 191
6.10 使用部署描述符还是标注 191
6.10.1 部署计划 192
6.10.2 标注、描述符、计划和
依赖注入 193
6.11 本章回顾 195
第7章 构建ejb应用程序示例 197
7.1 业务层需求 197
7.1.1 业务逻辑需求 197
7.1.2 对象关系映射需求 199
7.1.3 数据访问需求 203
7.1.4 其他业务层需求 203
7.1.5 业务层需求的回顾 203
7.2 可选的业务层体系结构 204
7.2.1 slsb和会话外观模式的
需求 204
7.2.2 使用jdbc的无状态会话
ejb 205
7.2.3 使用ejb 2.1 cmp实体bean
的无状态会话ejb 207
7.2.4 使用jpa的无状态会话ejb 209
7.3 bigrez的实现 211
7.3.1 数据库模式 211
7.3.2 域模型 212
7.3.3 服务 217
7.3.4 单元测试 222
7.3.5 添加乐观锁 223
7.4 使用toplink而不是kodo 223
7.4.1 希望使用toplink的理由 224
7.4.2 让使用toplink 224
7.5 本章回顾 227
第8章 打包和部署weblogic应用
程序 229
8.1 创建ejb归档文件 229
8.2 打包jpa持久化单元 236
8.3 企业应用程序 237
8.3.1 企业应用程序目录结构 239
8.3.2 企业应用程序的描述符文件 241
8.3.3 分解式部署 244
8.3.4 捆绑库 246
8.3.5 共享java ee库和可选包 248
8.3.6 其他类型的模块 249
8.3.7 自定义类加载器 250
8.4 打包251
8.5 部署应用程序 254
8.5.1 创建必需的服务 255
8.5.2 自动部署和weblogic.deployer 256
8.5.3 weblogic控制台部署 257
8.6 本章回顾 257
第9章 开发和部署web服务 259
9.1 总结web服务标准 259
9.2 用weblogic server创建web
服务 260
9.2.1 web服务的容器框架 260
9.2.2 开发weblogic server的web
服务 261
9.2.3 开发web服务客户端 274
9.3 高级技术 278
9.3.1 使用jax-rpc 278
9.3.2 理解style和use 278
9.3.3 影响调用哪个操作 280
9.3.4 创建更多动态的web服务 282
9.3.5 使用web服务的处理程序 288
9.3.6 使用soap附件 292
9.3.7 实现有状态的web服务 296
9.3.8 实现异步的web服务 297
9.3.9 自定义java和xml之间的
映射 300
9.4 使用web服务安全 301
9.4.1 定义安全策略 302
9.4.2 传输级安全 303
9.4.3 消息级安全 305
9.4.4 web服务的安全配置 311
9.5 在<CITE style="BACKGROUND: none transparent scroll repeat 0% 0%" class=highlight highlight="true">bigrez</CITE>中添加web
服务 312
9.6 本章回顾 314
第10章 使用weblogic jms 315
10.1 jms的重要概念 315
10.1.1 了解消息传递模型 315
10.1.2 回顾jms api 316
10.2 weblogic jms提供程序 321
10.2.1 了解weblogic jms
服务器 321
10.2.2 群集weblogic jms 321
10.2.3 weblogic jms的客户端 330
10.2.4 配置weblogic jms 332
10.3 weblogic jms应用程序设计 344
10.3.1 选择一种目标类型 344
10.3.2 定位目标 344
10.3.3 选择合适的消息类型 345
10.3.4 压缩大消息 347
10.3.5 选择一种消息确认策略 347
10.3.6 设计消息选择器 348
10.3.7 选择消息的过期策略 351
10.3.8 处理有害消息 353
10.3.9 处理消息顺序的问题 355
10.3.10 使用事务 360
10.3.11 使用多播会话 361
10.3.12 处理请求/响应样式的
消息交换 362
10.4 weblogic jms应用程序编程 365
10.4.1 weblogic jms与ejb和
servlet的组合使用 365
10.4.2 在服务器中使用异步消息 367
10.5 外部jms提供程序 372
10.5.1 了解消息传递桥 372
10.5.2 了解存储转发服务 373
10.5.3 使用消息驱动的bean 375
10.5.4 把外部jms对象映射到
weblogic jndi上 375
10.5.5 集成oracle高级队列 376
10.5.6 选择一种集成策略 378
10.6 本章回顾 379
第11章 使用weblogic安全性 381
11.1 weblogic安全概述 381
11.2 weblogic安全框架 387
11.2.1 嵌入式ldap服务器 387
11.2.2 安全领域和提供程序 389
11.3 使用外部安全存储 400
11.3.1 管理外部 ldap 身份
验证 400
11.3.2 管理rdbms身份验证 402
11.4 设置ssl/tls 404
11.4.1 ssl和x.509证书概述 404
11.4.2 获取x.509证书 405
11.4.3 配置单向ssl 407
11.4.4 配置双向ssl 408
11.4.5 调试ssl的问题 411
11.5 编写安全敏感的java客户端 412
11.5.1 编写使用jaas的java
客户端 412
11.5.2 编写使用ssl的java
客户端 415
11.6 管理应用程序的安全 420
11.6.1 应用程序安全模型 420
11.6.2 配置java ee应用程序的
安全 420
11.6.3 配置weblogic server应用
程序的安全 428
11.6.4 启动weblogic server 432
11.7 单点登录 432
11.7.1 saml语言 433
11.7.2 配置跨域安全和单点登录 440
11.7.3 自定义身份验证提供程序 445
11.8 本章回顾 446
第12章 在weblogic server中管理
和部署应用程序 447
12.1 weblogic体系结构的重要
概念 447
12.1.1 域体系结构 447
12.1.2 weblogic server体系结构 449
12.1.3 weblogic server群集体系
结构 456
12.1.4 管理服务器 463
12.1.5 节点管理器 465
12.2 weblogic server管理的重要
概念 466
12.2.1 服务器状态 466
12.2.2 服务器自我健康监控 467
12.2.3 网络信道 468
12.3 配置weblogic server的域 470
12.3.1 建立一个新域 472
12.3.2 配置服务器 473
12.3.3 配置群集 475
12.3.4 配置网络信道 478
12.3.5 建立节点管理器 481
12.3.6 操作系统的配置 486
12.3.7 java虚拟机的配置 487
12.3.8 web服务器插件的配置 487
12.3.9 管理端口和信道的配置 492
12.3.10 为weblogic server配置
应用程序 494
12.4 监视 weblogic server 应用
程序 511
12.4.1 使用weblogic脚本工具 511
12.4.2 使用弃用的命令行管理
工具 515
12.4.3 通过weblogic控制台进行
监视 516
12.4.4 通过jmx实现编程监视 518
12.4.5 通过snmp监视 522
12.5 管理 weblogic server 应用
程序 529
12.5.1 诊断应用程序的问题 529
12.5.2 版本化应用程序 540
12.5.3 处理故障情况 542
12.6 本章回顾 551
第13章 优化weblogic server的
性能 553
13.1 系统性能概述 553
13.1.1 核心原则 554
13.1.2 基于weblogic server的
应用程序的调优 555
13.2 性能最佳实践 573
13.2.1 可提高性能的设计方法 573
13.2.2 理解 web 容器的最佳
实践 574
13.2.3 理解ejb容器的最佳实践 576
13.2.4 应用数据库访问的最佳
实践 578
13.3 诊断性能问题 583
13.3.1 准备好故障诊断 583
13.3.2 识别瓶颈并消除瓶颈 584
13.3.3 解决问题 585
13.3.4 常见应用服务器性能问题 586
13.3.5 java栈跟踪 588
13.4 本章回顾 593
第14章 开发环境的最佳实践 595
14.1 定义需要的硬件和软件 595
14.2 安装weblogic server软件 598
14.3 开发项目结构 600
14.4 优化开发周期 601
14.4.1 分解目录开发 601
14.4.2 fastswap 603
14.5 建立构建过程 604
14.5.1 持续集成 605
14.5.2 代码检查和报告工具 606
14.6 集成开发环境 606
14.6.1 先决条件 607
14.6.2 为配置eclipse 607
14.6.3 为<CITE style="BACKGROUND: none transparent scroll repeat 0% 0%" class=highlight highlight="true">bigrez</CITE>配置
jdeveloper 612
14.6.4 通过ide进行调试 615
14.7 创建一个单元测试基础设施 616
14.7.1 单元测试的重要性 616
14.7.2 junit测试框架 617
14.7.3 容器外测试 619
14.7.4 测试web界面 622
14.7.5 web服务 624
14.7.6 性能和并发性测试 624
14.8 本章回顾 625
第15章 生产环境的最佳实践 627
15.1 部署策略 627
15.1.1 评价部署策略 628
15.1.2 服务器部署策略 629
15.1.3 单站点部署策略 630
15.1.4 多站点部署策略 635
15.1.5 设计多站点weblogic
群集 635
15.1.6 实现跨多站点的群集 638
15.1.7 在每一个站点实现一个
群集 639
15.2 全局和本地流量管理 642
15.2.1 使用负载均衡器 642
15.2.2 配合weblogic server使用
本地负载均衡器 643
15.2.3 配合weblogic server使用
全局负载均衡器 644
15.3 生产环境的安全策略 645
15.3.1 理解应用程序的数据流 645
15.3.2 理解防火墙布局 645
15.3.3 使用连接过滤器 647
15.3.4 锁定web应用程序 648
15.3.5 检查其他安全因素 650
15.3.6 使用ssl硬件加速 651
15.4 本章回顾 651
前言
本书与其他介绍WebLogic Server和Java EE技术的书籍不同。
首先,这是一本高水平的书,作为对Oracle在线文档和其他Java EE及WebLogic Server技术的入门书的补充,向中高级开发人员、架构师和管理员提供了对关键的Java EE开发和部署技术的深入讲解。本书跳过了基础内容,避免重复很容易从其他地方找到的信息,关注其他地方没有提到的信息和技术。本书由Oracle公司权威人士和企业级Java EE应用程序开发专家组成的作者团队编写,是对其他书籍和参考资料的延伸。
其次,本书描述了思路。不只是简单地罗列出解决问题的各种可选方案,而后让你自己去做出决策,而且分享了我们的思考过程,给你提供了在应用程序开发和管理过程中能够使用的具体建议和最佳实践。本书讲解了不同的设计方案、体系结构、构建技术、部署选项以及管理技术,但是并没有停留在这一步。我们会进而解释每一个可选方案的优点,以及应用这种方案的场合。我们不仅要让你理解有哪些方法可以完成任务,还要让你理解应该如何完成任务。
最后,本书构建并讲解的主要示例应用程序是一个真实复杂的应用程序,涵盖了很多Java EE技术的许多特征,以及Oracle WebLogic Server 11g特有的技术。这个示例应用程序覆盖了JSP、Spring MVC、EJB 3.0、JPA、JMS和Web服务等关键技术,展示了这些技术的应用。正文部分带你经历这个应用程序设的计、开发和部署过程中每一个决策做出的过程,帮助你在自己的开发工作中做出类似的决策。
读者对象
本书并不是Java EE技术和WebLogic Server环境的入门读物。这是一本高水平的书,对基本概念的描述很少,因此本书面向的读者是有经验的开发人员和WebLogic Server管理员,通过阅读本书他们可以将自己对这些技术的认识提升到更高水平。
主要内容
本书关注于如何通过最新发布的Oracle WebLogic Server 11g进行Java EE开发、部署和管理。书中描述的很多技术、框架、部署技术和管理工具都要求使用这个版本的WebLogic Server和最新版本的Java EE环境以及相关的各种库和框架。本书中构建的主要示例应用程序要求使用WebLogic Server 11g。
尽管如此,我们并不赞同“最新的就是最好的”这类技术观点。只要是合理的,我们就会在示例中选用经过检验且版本可靠的Java EE框架和库,前提是这些框架和库能够满足我们的需求并且完成任务。
下面列出了本书中描述过、比较过并且使用过(或没有使用过)的部分技术和框架:
EJB 3.0、JPA、OpenJPA、Kodo、TopLink
Java 6、Spring 2.5 MVC、Jakarta Struts 1.2、JSP 2.0、Tiles 2.0
JMS 1.1、SOAP 1.1、JAX-WS 2.1
JAAS、SAML 1.1和2.0、XACML、SSL、TLS 1.0、JSSE
JMX、SNMP、WLST、WLDF
组织结构
本书围绕着如下三个主题展开:
带你经历真实示例应用程序的设计、构建和部署的过程。
讨论以下领域的高级话题和最佳实践:安全、管理、性能调优和WebLogic Server环境配置等。
给出WebLogic Server应用程序开发、部署和管理的最佳实践。
. 前面10章关注第一个主题,接下来的5章关注第二个主题,而最佳实践则作为重点贯穿全书。下面简要描述了每一章的内容,你可以借此理解本书的内容和组织方式:
第1章概述了Web应用程序的关键概念和技术,然后讨论了一些高级话题,例如JSTL、表达式语言、自定义标记和servlet过滤等。
第2章考查了驱动Web应用程序体系结构的表示层需求,比较了三种备选的体系结构,并且给出了具体的建议,帮助你为自己的WebLogic Server应用程序选择合适的体系结构。
第3章详细描述了一个非常大且复杂的Java EE应用程序的表示层设计。讨论的话题包括各种不同的页面生成技术、业务层接口以及导致选择当前设计方案的示例应用程序需求。
第4章介绍了基于Spring MVC和JSP的示例web应用程序的整个构建过程。描述的过程中着重讲解了和WebLogic Server相关的构建技术,还讲解了和当前选择的表示层方法、Web应用程序体系结构以及业务层交互技术相关的组件和技术。
第5章讨论了打包和部署WebLogic Server Web应用程序所需的步骤,着重关注WebLogic Server相关的技术和最佳实践。
第6章考查了在WebLogic Server 11g中实现 Enterprise JavaBeans(EJB)和相关的持久化技术的可选方案和最佳实践。在简要回顾了EJB技术之后,关注点转向了JPA持久化规范和 OpenJPA 及 Kodo实现。接下来,这一章的后半部分讨论了WebLogic Server 11g中和EJB相关的关键特性,并且解释了如何在开发工作中最好地发挥这些特性的功效。
第7章描述了第1章至第4章开始的示例应用程序业务层的设计和构建,重点讲述了关键概念和最佳实践。首先根据一组典型的业务层需求,找出并考查了一些备选的业务层体系结构。接下来,详细讲述了实现所选EJB体系结构所需的技术,着重描述实现细节和最佳实践。最后,用另一个JPA实现(TopLink)替换了所选的JPA实现(Kodo),展示了这种替换可以方便地完成。
第8章讨论了打包和部署WebLogic Server企业级应用程序所需的步骤。这一章回顾了EJB模块和企业级应用程序的基本结构,讨论了打包JPA持久化单元所需的技术,展示了基于Ant的构建过程,比较了打包企业级应用程序的可选方案,还考查了WebLogic Server开发环境的部署技术。
第9章回顾了Web服务技术,描述了WebLogic Server 11g对Web服务的支持,讲解了和Web服务有关的重要最佳实践。这一章通过WebLogic Server实用工具创建了示例Web服务,讨论了WebLogic Server中的高级Web服务特性,还构建了一个Web服务作为本书主要示例应用程序的接口。
第10章讲述了和WebLogic Server JMS实现有关的信息和最佳实践。内容包括JMS群集和高可用性、各种JMS客户端选项、WebLogic JMS提供程序配置、JMS应用程序设计应该考虑的问题、利用WebLogic JMS的应用程序的构建以及和外部JMS提供程序的整合。
第11章讲解了和WebLogic Server安全有关的重要话题,包括WebLogic Server安全服务、WebLogic安全框架及其内置提供程序、和外部身份验证提供程序的集成、安全的客户端-服务器以及服务器-服务器通信的设置、应用程序安全的管理以及如何配置WebLogic Server用于单点登录。
第12章关注WebLogic Server管理和WebLogic Server产品的体系结构。这一章不是管理控制台的用户手册,而是对WebLogic Server内部体系结构的深入讲解、对重要管理概念(例如,服务器健康状态和网络信道)的讨论,以及对WebLogic Server和基于WebLogic Server的应用程序的配置、监视和管理的全面讲解。
第13章讲述了和可扩展高性能系统的实现和故障诊断有关的最佳实践。这一章讨论了可扩展Java EE系统的核心原则和策略,并提供了一组重要的设计模式以及影响性能和可扩展性的最佳实践,以及提升性能和解决系统可扩展性问题的步骤和技术。
第14章继续讨论和开发有关的最佳实践,并且提出了一些和开发环境关键领域相关的建议。内容包括开发环境的硬件和软件、开发环境中WebLogic Server的正确安装、项目目录结构的组织、构建过程的制定、合适开发工具的选择以及项目的单元测试基础设施的创建。
第15章讨论了在生产环境中部署WebLogic Server应用程序的策略和最佳实践,关注于生产环境的部署策略、全局流量管理解决方案以及生产环境安全的最佳实践。
阅读本书的先决条件
本书的示例和最佳实践都基于Oracle的WebLogic Server 11g应用服务器,可以从Oracle下载Web站点下载。如果想要构建并部署示例应用程序,请下载并安装这个产品。
WebLogic Server 11g安装程序包含了一个适合查看和编辑示例代码的Eclipse。此外,你还可以选用Oracle JDeveloper 11g或其他Java开发工具。第14章详细介绍了Eclipse和JDeveloper的安装和配置。
最后,本书的主要示例程序假定在你的环境中已经有一份可用的Oracle RDBMS副本。我们使用了完整版的Oracle Database 10g。Oracle Database 11g或10g Express Edition(也称为Oracle XE)应该也能使用。在Oracle下载可以获得一份数据库软件的试用副本。