前 言 本书与其他介绍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下载站点可以获得一份数据库软件的试用副本。 在线附录 在本书的正文中,有时候会引用一些网站的在线信息,这些在线信息的内容是对书中讨论的补充。我们发现需要引用的URL常常有两个缺点:一是太长,几乎不可能正确地输入,二是随着文档的更新或增补,有可能会随着时间变化。基于这个原因,正文中没有包含附加引用材料的实际地址,而是在网站上编制了一个在线附录,按章将所有引用的URL组织起来。正文通过编号来引用这些链接,例如Link 3-1。如果对文中提到的在线参考信息感兴趣,想要找到并阅读这些信息,请从下载在线附录并且利用附录中维护的地址。 源代码 在阅读本书提供的代码时既可以亲自输入所有代码,也可以使用本书提供的代码文件。本书所有代码均可以从或http://www.tupwk.com.cn/downpage下载。进入Wrox网站后,请根据本书的书名查找本书(既可以使用搜索框进行查找,也可以使用书名列表进行查找),然后单击本书详细内容页面上提供的Download Code链接,就可以下载本书提供的所有源代码。 注意: 由于许多书籍名称与本书类似,因此也可以通过ISBN进行查找,本书英文版的ISBN为:978-0-470-48430-2。 下载完代码后,可以利用一种压缩工具解压代码。此外,还可以通过访问网站/dynamic/books/download.aspx中提供的Wrox代码下载页面来获取本书提供的源代码,当然也可以下载Wrox出版的其他书籍提供的源代码。 勘误表 为了避免本书文字和代码中存在错误,我们已经竭尽全力。然而,任何事物都不是完美无缺的,本书仍然可能存在错误。如果你在我们编写的书籍中发现了诸如拼写错误或代码缺陷等问题,那么请告诉我们,我们对此表示感谢。利用勘误表反馈错误信息,可以为其他读者节省大量时间,同时,我们也能够受益于你的帮助,这有助于我们出版质量更高的专业着作。 如果需要参考本书的勘误表,请在网站中用搜索框或书名列表查找本书书名。然后,在本书的详细内容页面上,单击Book Errata链接。在随后显示的页面中,可以看到与本书相关的所有勘误信息,这些信息是由读者提交、并由Wrox的编辑们加上的。通过访问/misc-pages/booklist.shtml,还可以看到Wrox出版的所有书籍的勘误表。 如果没有在Book Errata页面上找到自己发现的错误,那么请转到页面/ contact/techsupport.shtml,针对你所发现的每一项错误填写表格,并将表格发给我们,我们将对表格内容进行认真审查,如果确实是我们书中的错误,那么我们将在该书的Book Errata页面上标明该错误信息,并在该书的后续版本中改正相关错误。 关于 如果你希望能够与作者进行讨论,或者希望能够参与读者的共同讨论,那么请加入上的P2P论坛。这个论坛是一个基于Web的系统,你可以在论坛发表与Wrox出版的书籍有关的技术信息,并与其他读者和技术用户进行讨论。论坛提供了订阅功能,可以将与你所选主题相关的新帖子定期发送到你的电子邮箱。Wrox的作者、编辑、业界专家以及其他读者都会参与论坛中的讨论。 你可以在参与多个论坛的讨论,这些论坛不仅能够帮助你更好地理解本书,还有助于你更好地开发应用程序。如果希望加入论坛,请执行以下步骤: (1) 进入页面,单击Register链接。 (2) 阅读使用条款,然后单击Agree按钮。 (3) 填写必要的信息以及你愿意提供的其他可选信息,然后单击Submit按钮。 (4) 随后你会收到一封电子邮件,邮件中说明了如何验证账号并完成整个加入过程。 注意: 要阅读论坛信息,无需加入P2P。但是如果要发表主题或回复,就必须加入论坛。 成功加入论坛后,就可以发表新主题了。此外,还可以回复其他主题。你在任何时间都可以阅读论坛信息。如果需要论坛将新的信息发送到自己的电子邮箱,那么可以单击论坛列表中论坛名称旁的Subscribe to this Forum图标完成该功能设置。 如果需要获得更多与Wrox P2P相关的信息,请阅读P2P FAQ,这样可以获得大量与P2P和Wrox出版的书籍相关的具体信息。阅读FAQ时,请单击P2P页面上的FAQ链接。