标题：Oracle WebLogic Server开发权威指南
基本信息
原书名：Professional Oracle Weblogic Server
原出版社：Wrox
作者：(美)Robert Patrick Gregory Nyberg Philip Aston Josh Bregman Paul Done [作译者介绍]
译者：贺新征赵铭任鸿  Oracle WebLogic Server开发权威指南封面
出版社：清华大学出版社
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下载可以获得一份数据库软件的试用副本。