首页>参考读物>计算机科学与技术>综合

EJB锦囊妙技
作者 : (美)Benjamin G.Sullins, Mark B.Whipple
译者 : 马朝晖 等译
出版日期 : 2004-09-14
ISBN : 7-111-14984-X
定价 : 35.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 272
开本 : 16开
原书名 : EJB Cookbook
原出版社: Manning Publications Co.
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书以问题/解决方案的格式进行组织,系统地收集了EJB开发过程中计多实际问题的解决方案。每个解决方案都有与之相关联的解决方案,使读者可以方便地进行查看和理解。
  本书适合从事Java开发工作的技术人员阅读,对于那些对EJB感兴趣的读者同样适用。

图书特色

图书前言

“我确实喜欢写菜谱这个念头……那些讨厌文学但是喜欢煎鸡蛋的人会去买它,如果价钱合适的话。”
—Groucho Marx
  随着日益壮大的开发队伍更多地接受Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE),与EJB(Enterprise JavaBeans)相关的资源、指南、书籍和专家的数量也在不断增长。使用“Enterprise JavaBeans”这个词对一家流行的网上书店进行查询,能找到20余本书,而且还只包括书名中包含这个词的书籍。使用因特网搜索引擎Google(www.google.com)能够获得大约744页与EJB密切相关的网站链接。面对大量的知识、讲解和讨论资料,EJB开发人员经常需要花费很长时间去查找快捷的解决方案。有多少次你是翻遍了一本书或者几本书的很多页才找到所要的答案?
  我们自己就有过这样解决问题的经历,所以决定做一些事情去改善这一现状。编写本书的目的是想提供重要问题的解决方案资源。就像菜谱包括烹调各种美食的步进式指导一样,本书提供EJB问题的解决方案。在书中你会发现很多种问题的解决方案,范围从简单的、日常的快速引用问题到使用EJB模式进行复杂设计的挑战。
  本书对应的读者是至少具有一些EJB开发经验的开发人员。了解了这一点,你就不会在本书中查找描述会话和实体bean基本构建原则的解决方案。我们假设你了解企业开发的概念和EJB编程的基础知识。本书使用的格式专门面向问题,避免使用EJB关键词(查看目录的内容就能证明这一点)。例如,不要查找“设计模式”,而要查找你要解决的实际问题(如“改进网络性能”)。
  我们编写的解决方案是相互关联的,它们引用了其他与之相关的解决方案。我们希望读者可以拿起这本书并且能够从任何地方开始阅读。解决方案都是短小精练的,可以在坐地铁、喝咖啡的时候或者任何有几分钟空闲的时候拿出来翻阅。
  本书的一个有用的姐妹篇是《Bitter EJB》,也是Manning出版社出版的。它详细讲解了专门针对EJB开发的很多反模式(antipattern),并且提供了实用的设计途径:如何通过研究与技术相关的最重要的问题和解决方案成为更好的程序员。
  我们已经为你准备好了这本书,现在邀请你共享我们的解决方案。你也许会从9章中进行挑选或者全部读完它们。尽情享受吧!

致   谢
  很多人为能在短时间内完成本书提供了帮助。我要感谢Manning出版社允许我们进行这项工作。感谢Marjan Bace和Alex Garrett引发了本书的构想。感谢Susan Capparelle和Mary Piergies帮助我们保持进度,还要感谢Helen Trimes完成了编辑工作。
  再次感谢Manning出版社,我们从文字编辑Liz Welch那里得到了很大的帮助。她总是随时都能够投入紧张的工作。同样,我们还要感谢审阅者:Karl Moss、Barry Nowak、Lester Martin、Ravi Mathur、Naveen Gabrani、Jeff Sullins、Bruce Tate和Ganapathy Arunkumar。
  最后,感谢Cyrus Dadgar提供了他的技术经验和洞察力。
BEN SULLINS—感谢我的妻子Jenny。我得到了聪明、风趣和性感的她永恒的支持,而且我将和她永远生活在一起。感谢上帝赐予我如此完美的家庭。最后,我要感谢我的合著者Mark,感谢他的努力工作并给予我完成本书的动力。
  MARK WHIPPLE—感谢我的家庭忍受我夜间的工作和在度假期间仍待在笔记本电脑前。没有他们的耐心和支持,完成本书是不可能的。感谢我的父母,在我的生命中他们的支持始终是我获得成功所必需的动力。我要特别感谢我的合著者Ben。他充沛的热情和对成功的信心是对我的激励,并且使我集中精力编写本书。

关 于 本 书
  除了两个解决方案以外,本书中的所有解决方案都是基于EJB 2.0规范的。创建EJB Web服务端点和EJB计时器服务的解决方案基于EJB 2.1规范。在几章中的适当地方讲解了其他技术或者框架。实际上,本书使用XDoclet、log4j、Ant和Cactus。例如,第8章讨论在EJB应用中使用log4j提供日志记录功能。在涉及外部框架或者工具的时候,只讨论与EJB有关的部分。因此尽管提供了介绍,你也需要参考其他文档来解决更进一步的问题。
  本书是为有经验的EJB开发人员而编写的。也就是说,我们没有提供我们认为读者已经知道的解决方案。比如你不会在本书中发现描述EJB结构、构造或者部署的基础原则。很多解决方案给出了完整的范例,而其他可能只给出了伪代码或者部分范例。很多代码都可以从本书的站点(www.manning.com/sullins2)下载。
  你可以选择从头到尾地阅读本书,也可以着重阅读所需要的特定主题。下面给出每章的简短介绍,以便读者可以按照自己的意愿进行选择。我们建议读者重点阅读在日常EJB开发工作中面临的问题的解决方案。各章都不是在前一章的基础之上建立的,所以无需按照顺序阅读。本书一定会是你书架上可以找到的先读最后一页而不会导致任何不便的书籍之一。
  第1章  客户代码
  第1章提供处理EJB客户遇到的问题的解决方案,其中的范例演示如何通过servlet、applet和Java服务器页面(JavaServer Pages)使用EJB。这一章还讨论在调用EJB的方法之前,如何使用EJB元数据获得关于EJB的信息。
  第2章  使用XDoclet生成代码
  第2章讲解通过引入和使用一种开放源代码的工具(称为XDoclet)生成代码。XDoclet正在迅速地成为很多EJB开发人员选择的代码生成工具。在这一章中,你将掌握如何使用XDoclet根据bean实现类生成文件,以便使所有EJB文件保持同步。XDoclet会生成部署描述文件、接口和其他类,比如值对象。
  第3章  处理数据
  第3章讨论当EJB处理数据时发生的最紧迫的问题,重点讲解对会话bean、bean管理的持久性实体bean以及容器管理的持久性实体bean使用Java数据库连接(Java Database Connectivity,JDBC)。此外还提供了使用实体bean的最佳方式,以及把大型结果集合返回给客户的解决方案。
  第4章  EJB的活动
  第4章提供一组处理EJB日常活动的解决方案。它们和其他章中的解决方案没有非常密切的联系,你会发现有一些很独特,比如用消息驱动bean创建异步过程以及把EJB与业务服务类实现隔离开。
  第5章  事务
  第5章处理与事务相关的问题。你会找到处理容器管理和bean管理事务的解决方案。伴随着创建事务和传播事务,这一章还展示处理回滚和从错误中恢复的解决方案。
  第6章  消息
  第6章重点讲解EJB应用的消息方面的问题。这一章包括使用Java消息服务(Java Message Service,JMS)和消息驱动bean的解决方案。你会学到如何把不同类型的JMS消息发送到不同类型的目的地。这一章中还有把业务逻辑封装到消息驱动bean中的原则,以及处理错误和回滚的原则。
  第7章  安全
  第7章讨论通过使用EJB容器提供的安全机制解决安全问题。另外还包括保护实体bean和消息驱动bean的安全原则。这一章重点介绍EJB规范描述的EJB声明式安全模型,并且描述每个EJB可用的各种与安全和身份相关的方法。
  第8章  日志记录
  第8章讨论一种开放源代码的日志记录工具log4j。我们介绍了如何安装log4j以及把log4j合并到企业应用中。在导论部分之后,这一章提供对EJB应用进行日志记录的相关问题的解决方案,其中包括在集群中集中记录日志以及在多客户环境中将日志记录消息分类。
  第9章  部署和单元测试
  第9章的两个重点是Apache Ant和Apache Cactus。几个解决方案主要介绍使用Ant构造EJB类文件、生成存根以及把类文件打包在适当的JAR文件中。另一部分重点讲解使用Cactus对EJB提供的功能进行单元测试。这一章还提供对Cactus的介绍以及对实体和会话bean进行测试的解决方案。
  附录A  相关解决方案
  这个附录以交叉引用格式给出解决方案标题。这使你可以很容易地查找任何解决方案以及与其相关的解决方案。使用这种方式,你可以找到与本书中任何主题相关的所有适用信息。
  附录B  附加资源
  这个简短的附录列出了一些资源,帮助你获得书中提到的某些主题的更多信息。因为本书没有为提到的很多概念提供详细的指南,所以这个附录很重要。你可以通过这里列出的资源获得更加深入的讲解和研究资料。
  代码
  源代码可以从Manning的网站(www.manning.com/sullins2)免费获得。很多解决方案只包含演示一个要点的代码片断,并且这些片断不出现在可供下载的源代码中。能够下载的资源是那些包含完整代码的范例。在某些情况下,完整的源代码不出现在解决方案中。
  在我们给出源代码时,有时候使用粗体来引起对特殊部分的注意。在本书中,Courier字体用于表示代码(XML、Java和HTML),还表示Java方法和其他源代码标识符:
  ■ 对方法的引用通常不包括签名,因为方法调用的形式可能不只一种。
  ■ 对XML元素的引用包括括号,但是不包括属性或者封闭的标记(<action>)。

如何使用本书
  本书并不是一个故事—它没有开头或者结尾,不需要按照顺序去阅读。我们建议使用附录A或者目录查找你感兴趣的主题并且直接跳到那里。在目录和附录A中都能找到解决方案的标题。本书的出色之处在于能够在几分钟内讲述解决方案。我们希望它成为快捷的解决方案参考,而不是指导性的指南。

作 者 在 线
  读者在使用本书的同时,可以免费访问Manning出版社为本书专设的Web论坛,在论坛中可以评论书籍、提出技术问题以及从作者和其他用户那里获得帮助。具体网址是www.manning. com/sullins2。网页上的信息解释了如何在注册之后登录论坛、可以获得什么样的帮助以及论坛的管理规则。

作者简介

(美)Benjamin G.Sullins, Mark B.Whipple:Benjamin G.Sullins: Benjamin G.Sullins长期从事Java开发工作,主要的研究领域为J2EE及其相关技术。他是<<JMX in Action>>一书的作者。
Mark B.Whipple: 是架构师和开发人员,拥有11项软件专利。他从事网络和软件集成工作,对J2EE技术非常了解。

译者简介

马朝晖 等译:暂无简介

图书目录

第一部分  导论
第1章  客户代码
1.1  从另一个EJB调用本地EJB
1.2  从另一个EJB调用远程EJB
1.3  从servlet访问EJB
1.4  从Java服务器页面调用EJB
1.5  从JMS系统调用EJB业务逻辑
1.6  将EJB实例的引用持久化
1.7  获得并且使用持久化的EJB引用
1.8  将主对象引用持久化
1.9  比较两个EJB引用是否相同
1.10  对EJB使用反射
1.11  从applet调用EJB
1.12  改善客户端的EJB查找代码
第2章  使用XDoclet生成代码
2.1  生成主、远程、本地和本地主接口
2.2  为主接口添加和定制JNDI名称
2.3  使EJB部署描述文件保持最新
2.4  为实体bean创建值对象
2.5  生成主键类
2.6  避免硬编码的XDoclet标记值
2.7  使用工具对象帮助进行bean查找
2.8  生成供应商特有的部署描述文件
2.9  在bean源代码中指定安全角色
2.10  生成和维护方法权限
2.11  为实体主接口生成查找器方法
2.12  生成ejbSelect方法XML
2.13  把主方法添加到生成的主接口
2.14  把实体关系XML添加到部署描述文件
2.15  把目的地类型添加到消息驱动bean的部署描述文件
2.16  把消息选择器添加到消息驱动bean的部署描述文件
第二部分  主 体 部 分
第3章  处理数据
3.1  使用数据源
3.2  创建EJB 2.0容器管理的持久性
3.3  对不同的用户使用不同的数据源
3.4  使用数据库序列为实体bean生成主键值
3.5  为实体bean使用组合主键
3.6  在单一步骤中获得多个实体bean
3.7  建立一对一实体数据关系的模型
3.8  为实体bean创建一对多的关系
3.9  使用实体关系创建层叠删除
3.10  开发不能创建的、只读的实体bean
3.11  从EJB调用存储过程
3.12  使用EJB-QL创建定制的查找器方法
3.13  把实体数据持久化到数据库视图中
3.14  基于实体数据的变化发送通知
3.15  为实体数据创建接口
3.16  获得实体数据集合的信息
3.17  减少调用实体bean的次数
3.18  在大型结果集合中分页
第4章  EJB的活动
4.1  获得环境变量
4.2  实现EJB的toString()功能
4.3  为所有EJB提供通用方法
4.4  减少未实现的bean方法造成的混乱
4.5  从EJB发送电子邮件
4.6  使用EJB 2.1的计时器服务
4.7  从EJB发送JMS消息
4.8  把EJB当作Web服务使用
4.9  创建EJB客户的异步行为
4.10  不使用消息驱动bean创建异步行为
4.11  隔离EJB和服务类实现
4.12  创建批处理机制
第5章  事务
5.1  调整EJB的容器事务控制
5.2  不使用容器处理事务的管理
5.3  回滚当前的事务
5.4  试图使用错误恢复避免回滚
5.5  在方法完成之前强制回滚
5.6  对事务加以时间限制
5.7  把实体更新组合到单一事务中
5.8  在事务边界管理EJB状态
5.9  在一个方法中使用多个事务
5.10  在回滚之后管理EJB状态
5.11  抛出异常且不导致回滚
5.12  把事务传播到另一个EJB业务方法
5.13  把事务传播到非EJB类
5.14  在客户层启动事务
5.15  在多个Java服务器页面之间维持事务
5.16  在一个事务中更新多个数据库
第6章  消息
6.1  发送公布/预订JMS消息
6.2  发送点对点JMS消息
6.3  创建消息驱动的EJB
6.4  按照先进先出(FIFO)方式从消息队列中处理消息
6.5  把消息驱动bean和业务逻辑改动隔离开
6.6  把数据流发送给消息驱动EJB
6.7  使用单一JMS消息触发两个或者更多的消息驱动bean
6.8  加速消息驱动bean的消息传送
6.9  为消息驱动EJB过滤消息
6.10  在消息驱动EJB中封装错误处理代码
6.11  异步发送电子邮件消息
6.12  在消息驱动bean中处理回滚
第7章  安全
7.1  在EJB方法内找到调用者的身份和角色
7.2  分配和确定EJB客户安全角色
7.3  把客户凭证传递给EJB容器
7.4  对特定用户禁用方法
7.5  为EJB分配角色
7.6  防止对实体数据的访问
7.7  使用EJB处理对LDAP源的简单验证
7.8  保证消息驱动bean的安全
第三部分  补   充
第8章  日志记录
8.1  对日志消息进行格式化
8.2  改进日志性能
8.3  使用日志生成报告
8.4  把日志消息发送给JMS主题
8.5  将日志记录到XML文件
8.6  为Web浏览器创建日志文件视图
8.7  在集群环境中创建集中化的日志文件
8.8  跟踪EJB的生命周期
8.9  在运行时使用不同的配置
8.10  按照客户将日志消息分类
第9章  部署和单元测试
9.1  编译EJB
9.2  构造ejb.jar文件
9.3  构造EJB的存根类
9.4  创建无状态会话bean的单元测试
9.5  创建有状态会话bean的单元测试
9.6  创建实体bean的单元测试
9.7  测试案例执行的自动化
9.8  使用UI执行测试案例
附录A  相关解决方案
附录B  附加资源

教学资源推荐
作者: (美)Ramez Elmasri,A. Gil Carrick, David Levine 著
作者: [美]克利福德·斯坦(Clifford Stein)[美]罗伯特·L.戴斯得尔(Robert L. Drysdale)[美]肯尼斯·博加特(Kenneth Bogart)著
作者: 王立柱 编著
作者: 禹晶 孙卫东 肖创柏 编著
参考读物推荐
作者: [美]挪亚·吉夫特(Noah Gift) 著
作者: 新摄会摄影 编著
作者: Jennifer Niederst
作者: (美)Jason Falls,Erik Deckers 著