BEA WebLogic Server 8.1大全

BEA WebLogic Server 8.1大全
作 者: Mark Artiges 袁毅 袁毅
出版社: 机械工业出版社
丛编项: 开发人员专业技术丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 服务器
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  MarkArtiges是一位独立顾问,目前为TepikSystems工作,职位是首席软件工程师.Mark从事计算机行业达18年以上,他涉猎了数据处理计划与开发方法学的许多方面.在将AT&T.USSearch和PublicStorage等公司的核心遗留系统迁移到WebLogicPlatform这样的大型应用程序开发过程中,Mark曾担任系统架构师和首席开发人员.GurpreetSinshBhasin是一位架构师.设计人员和开发人员,他持有BEA.Sun和Microsoft颁发的证书.在使用J2EE和Microsoft技术设计.开发.测试和维护N层电子商务与企业信息系统的领域中,他具有5年以上的经验.最近,Gurpreet担任了一个基于Internet的DIRECTV系统的模块负责人,该系统允许1000万以上的客户进行增强的账户访问.他拥有印度Kurukshetra大学的电子与通信工程学士学位.

内容简介

本书特色本书是WebLogic开发人员的权威参考手册,书中深入探讨了WebLogicServer所提供的功能,并列举了一些最佳开发实践。本书全面介绍了WebLogic在J2EE应用程序的各个方面所完成的任务:从使用servlet、JSP和EJB,到管理分布式系统,包括利用JTA的事务处理、利用JNDI的目录服务、利用JMS的消息系统,等等。本书作者还特别注意WebLogic中的测试、优化和调试问题,以便实现安全方面的功能和管理WebLogic应用程序。主要内容●集中介绍构建WebLogic应用程序的综合技巧和背景知识。●利用JSP和JavaServlet构架和部署Web应用程序。●利用J2EEAPl处理事务.消息、数据库、邮件服务等。●利用JSP标签库和JakartaStruts构建应用程序。●学习EJB的最佳实践和设计策略。●使用JUnit、JProbe和JMeter测试、调试和优化WebLogic应用程序。●利用XML.Web服务,jCOM、JCo、CORBA和Tuxedo应用程序.将WebLogic集成到企业系统中。●管理WebLogic应用程序和使用群集服务。●使用WebLogicWorkshop8.1开发WebLogicServer应用程序。随书光盘包括●本书讨论的所有源代码。●本书英文原书的电子版本。●BEAWebLogicPlatform8.1开发者评估版本。本书全面介绍如何使用WebLogieServer8.1开发和管理可伸缩和安全的企业级Java应用程序。书中将许多J2EE技术置于WebLogic开发的背景中进行了解释,帮助没有接触过J2EE的读者迅速上手。全书共分为十个部分,分别介绍WebLogicServer及其安装与配置,如何设计WebLogicServerWeb应用程序,在WebLogid应用程序中使用J2EE技术、Web技术、EJB等,如何测试、调试和优化WebLogicServer应用程序,WebLogicServer的安全问题,WebLogicServer企业应用程序的集成和管理。本书附带一张光盘,内含书中的源代码、本书英文原书的电子版本以及BEAWebLogicPlatform8.1开发者评估版本,非常便于读者的学习。本书适合企业应用开发人员、企业架构师等参考。

图书目录

第一部分 WebLogic Server入门

第1章 Weblogic Server简介 2

1.1 需要Weblogic Server 2

1.2 WebLogic Server的简要概述 3

1.2.1 J2EE规范 3

1.2.2 WebLogic Server框架 3

1.2.3 WebLogic Server引擎 5

1.3 WebLogic Server如何适用于组织 5

1.3.1 正在使用WebLogic Server的公司 6

1.4 BEA的产品系列 6

1.4.1 BEA WebLogic Portal 6

1.4.2 BEA WebLogic Intergration 6

1.4.3 BEA WebLogic JRockit 7

1.4.4 BEA WebLogic Workshop 7

1.5 WebLogic Server8.1的新特性 7

1.5.1 对Web服务的支持 7

1.5.2 新的安全模型 7

1.5.3 开发工具 8

1.5.4 性能增强 8

1.5.5 管理增强 8

1.5.6 对J2EE规范的扩展 9

1.6 小结 9

第2章 安装WebLogic Server 10

2.1 Windows平台下的安装 10

2.1.1 系统需求 11

2.1.2 运行platform8xx_win32.exe——Graphical模式 11

2.1.3 运行WebLogic8xx_win32.exe——Slient模式 15

2.2 Unix平台下的安装 16

2.2.1 系统需求 16

2.2.2 Unix平台下安装——图形模式 17

2.2.3 Unix平台下的安装——控制台模式 17

2.3 安装WebLogic Platform许可证 17

2.4 更新WebLogic 8许可证 18

2.5 加密许可 18

2.6 安装WebLogic 8 Service Pack 19

2.7 启动和停止WebLogic Server 8 19

2.7.1 启动WebLogic 8的管理服务器 19

2.7.2 启动WebLogic 8 托管服务器 20

2.7.3 成功启动的消息 21

2.7.4 WebLogic Server 8的正常停止 21

2.7.5 WebLogic Server 8的不正常停止 22

2.8 创建自己的启动脚本 22

2.9 疑难解答 23

2.10 小结 23

第3章 开发WebLogic应用程序的技术 24

3.1 软件和硬件管理 24

3.1.1 硬件和软件可扩展性设计 24

3.1.2 硬件支持 25

3.1.3 操作系统维护 25

3.1.4 WebLogic Server管理 25

3.1.5 安全专家 25

3.1.6 备份和存档支持 25

3.2 Java技术 25

3.2.1 Java架构师 26

3.2.2 JSP和Servlet 26

3.2.3 JDBC和SQL 26

3.2.4 超越基础 27

3.2.5 Applet 27

3.2.6 Swing组件 28

3.3 可视化表示技术 28

3.3.1 HTML开发 28

3.3.2 JavaScript 28

3.3.3 GUI设计 28

3.3.4 图形艺术 29

3.4 数据库技术 29

3.4.1 数据库设计 29

3.4.2 数据库开发 29

3.4.3 数据库管理员 29

3.5 与传统系统的连接 30

3.6 测试和质量保证 30

3.7 客户支持专家 30

3.8 软件开发阶段 30

3.8.1 设计阶段 31

3.8.2 实现阶段 31

3.8.3 管理阶段 32

3.8.4 维护阶段 32

3.9 小结 32

第4章 开发WebLogic应用程序的硬件和配置 33

4.1 在开发环境中运行WebLogic Server 8.1 33

4.1.1 Java编译器 34

4.1.2 软件开发 35

4.1.3 Web浏览器 35

4.2 其他有用的软件 36

4.2.1 版本控制软件 36

4.2.2 建模工具 36

4.2.3 测试软件 37

4.2.4 每晚或每周编译 37

4.2.5 性能测试工具 38

4.3 打包和部署软件 38

4.4 团队开发 39

4.5 小结 40

第5章 用WebLogic Server设计企业应用程序 41

5.1 了解N层应用程序 41

5.2 J2EE平台 42

5.2.1 分层体系结构的支持 42

5.2.2 组件模型体系结构 43

5.2.3 基础结构和服务 44

5.2.4 WebLogic Server和J2EE 46

5.2.5 设计J2EE应用程序 47

5.3 建模技术——UML 49

5.3.1 UML图——概述 49

5.3.2 用例图 50

5.3.3 类图 50

5.3.4 包图 50

5.3.5 时序图 51

5.3.6 协作图 51

5.3.7 活动图 51

5.3.8 部署图 51

5.4 设计策略——“模型-视图-控制器”模式 52

5.4.1 MVC结构 52

5.4.2 应用MVC 52

5.5 开发方法学 53

5.5.1 极限编程——核心准则 53

5.5.2 Rational Unified Process 54

5.6 小结 55

第二部分 WebLogic Server Web应用程序

第6章 Weblogic Web应用程序入门 57

6.1 Web应用程序的定义 57

6.1.1 Web容器 58

6.1.2 Web应用程序组件 59

6.1.3 Web应用程序配置 59

6.2 Web应用程序和请求-响应模型 60

6.3 创建一个Web应用程序 61

6.3.1 开发生命周期 62

6.3.2 开发策略 63

6.3.3 配置Web应用程序 64

6.4 小结 65

第7章 部署Web应用程序 66

7.1 应用程序打包和预部署 66

7.1.1 打包Web应用程序 66

7.1.2 打包企业应用程序 67

7.1.3 创建和编辑应用程序部署描述符 68

7.1.4 部署描述符的安全元素 69

7.2 部署应用程序的方法 70

7.2.1 自动部署 70

7.2.2 使用WebLogic Server管理控制台部署应用程序 71

7.2.3 使用weblogic.Deployer工具来部署应用程序 72

7.2.4 使用WebLogic Builder部署应用程序 73

7.2.5 使用Ant工具部署应用程序 74

7.2.6 手工修改config.xml文件来部署应用程序 74

7.3 WebLogic Server的部署问题 75

7.4 部署的最佳实践 75

7.4.1 压缩与非压缩的应用程序 75

7.4.2 非压缩的应用程序 75

7.4.3 开发 76

7.4.4 分段模式 76

7.5 小结 76

第三部分 在WebLogic应用程序中使用J2EE技术

第8章 使用JNDI的命名和目录服务 78

8.1 命名服务 78

8.1.1 了解命名服务的不同 79

8.2 Java命名和目录接口 79

8.2.1 JNDI体系结构概述 79

8.2.2 JNDI 1.2.1规范概述 80

8.3 JNDI和WebLogic群集 86

8.3.1 群集中的命名冲突 87

8.4 JNDI最佳实践 87

8.4.1 避免在JNDI对中存储应用程序数据 88

8.4.2 优化远程客户机的查询 88

8.4.3 考虑使用服务定位器模式 88

8.4.4 尽量避免非复制绑定 88

8.5 小结 89

第9章 用Java Transaction API处理事务 90

9.1 事务概述 90

9.1.1 ACID事务 91

9.1.2 本地事务与全局事务 91

9.1.3 全局事务参与者 92

9.1.4 两阶段提交协议 92

9.1.5 如何让所有参与者共同工作以管理事务 92

9.1.6 Java事务服务 93

9.2 事务隔离级别 93

9.2.1 脏读 93

9.2.2 不可重复读 94

9.2.3 幻读 94

9.2.4 TRANSACTION_READ_UNCOMMITTED 94

9.2.5 TRANSACTION_READ_COMMITTED 94

9.2.6 TRANSACTION_REPEATABLE_READ 94

9.2.7 TRANSACTION_SERIALIZABLE 95

9.2.8 TRANSACTION_NONE 95

9.3 WebLogic Server如何执行事务 95

9.4 事务范围 96

9.5 Java Transaction API和WebLogic 96

9.5.1 UserTransaction Interface 96

9.5.2 TransactionManger接口 97

9.5.3 Transaction接口 97

9.6 其他JTA接口 97

9.6.1 Status接口 97

9.6.2 Synchronization接口 97

9.6.3 XAResource接口 98

9.6.4 Xid接口 98

9.7 WebLogic对JTA的扩展 98

9.7.1 WebLogic TransactionManager接口 98

9.7.2 WebLogic Transaction接口 98

9.7.3 WebLogic TxHelper类 98

9.7.4 WebLogic XaResource接口 98

9.8 配置容器管理的企业组件 99

9.8.1 声明性事务模型 99

9.8.2 容器管理的事务属性 99

9.9 管理控制台中的JTA属性 100

9.9.1 事务配置 100

9.9.2 事务监视 101

9.9.3 事务日志 102

9.10 使用JTA的全球拍卖 102

9.10.1 指定事务类型 103

9.10.2 指定默认事务属性 103

9.11 选择事务属性的最佳实践 104

9.12 小结 104

第10章 用JDBC管理数据库连接 105

10.1 JDBC体系结构 105

10.1.1 应该使用哪种类型的驱动程序 107

10.1.2 WebLogic Server提供的JDBC驱动程序 107

10.2 PointBase数据库服务器 108

10.2.1 查看WebLogic安装中的PointBase组件 109

10.2.2 启动PointBase服务器 109

10.2.3 启动PointBase控制台 110

10.2.4 使用PointBase控制台 110

10.2.5 PointBase数据库驱动程序 111

10.2.6 案例分析:XYZ糖果 111

10.3 基本JDBC功能 112

10.3.1 连接到数据库 112

10.3.2 在数据库中执行SQL语句 114

10.3.3 处理查询的结果 115

10.3.4 使用PreparedStatement更快地执行SQL 116

10.3.5 事务 118

10.3.6 SQL错误处理 120

10.4 高级JDBC功能 120

10.4.1 JDBC扩展包 120

10.4.2 高级ResultSet 126

10.4.3 RowSet 128

10.4.4 执行存储过程 131

10.4.5 批更新 133

10.4.6 语句缓存 134

10.4.7 SQL3数据类型支持 134

10.5 WebLogic JDBC——监视和调整 136

10.5.1 调整连接池 136

10.5.2 监视连接池 137

10.5.3 控制连接池 138

10.5.4 用命令行验证数据库连接 138

10.6 JDBC——最佳实践 139

10.6.1 使用聪明的查询 139

10.6.2 将数据库更新结合到事务中 139

10.6.3 不要使用跨用户输入的事务 139

10.6.4 设计应用程序进行并行数据处理 139

10.6.5 选择一个最优的隔离级别 139

10.6.6 使用连接池 140

10.6.7 使用适当的Statement对象 140

10.6.8 使用批处理 140

10.6.9 使用数据缓存 140

10.6.10 尽可能使用合适的更新 140

10.6.11 释放JDBC资源 140

10.6.12 使用完后释放连接 141

10.7 JDBC和全球拍卖管理系统 141

10.8 小结 141

第11章 用RMI创建分布式应用程序 142

11.1 RMI介绍 142

11.1.1 WebLogic的RMI实现 143

11.2 什么时候使用RMI 144

11.3 RMI编译器 144

11.4 编写RMI代码 145

11.4.1 编写远程接口 146

11.4.2 实现远程接口 146

11.4.3 编译接口和实现 147

11.4.4 运行weblogic.rmic编译器 147

11.4.5 编写RMI客户 147

11.5 性能问题 147

11.5.1 伸缩性 147

11.5.2 线程/套接字管理 148

11.5.3 序列化 148

11.5.4 支持服务 148

11.5.5 分布式垃圾收集 148

11.6 WebLogic RMI注册表 148

11.7 WebLogic RMI API 149

11.7.1 WebLogic实现的RMI API 149

11.7.2 WebLogic RMI安全类 149

11.7.3 WebLogic RMI注册表类 149

11.7.4 其他有用的WebLogic Server类 149

11.7.5 在WebLogic RMI中传递参数 150

11.8 WebLogic RMI最佳实践 150

11.9 小结 151

第12章 使用JMS的企业消息传递 152

12.1 企业消息简介 152

12.1.1 消息服务区域 153

12.1.2 点对点消息 153

12.1.3 发布-订阅消息 153

12.1.4 消息过滤、同步和质量 154

12.1.5 MOM 154

12.2 JMS简介 155

12.3 JMS核心体系结构 155

12.3.1 JMS连接 156

12.3.2 JMS会话 157

12.3.3 JMS会话池 157

12.3.4 JMS事务连接和会话 158

12.3.5 JMS一般消息 159

12.3.6 JMS专用消息 160

12.3.7 消息生产者、消费者和选择器 161

12.4 JMS点到点队列模型 162

12.4.1 点到点消息队列示例源代码 164

12.4.2 WebLogic JMS Server配置 166

12.4.3 WebLogic JMS连接工厂配置 167

12.4.4 WebLogic JMS队列配置 168

12.4.5 执行JMS队列例子 168

12.5 JMS发布-订阅模型 169

12.5.1 发布-订阅示例源代码 170

12.5.2 Weblogic JMS主题配置 172

12.5.3 执行JMS主题例子 172

12.6 JMS统一消息域模型 173

12.6.1 统一域消息示例源代码 173

12.7 高级WebLogic JMS配置 175

12.7.1 JMS持久性存储 175

12.7.2 目标键(Destination Key) 176

12.7.3 外部JMS服务器 176

12.7.4 JMS模板 177

12.8 企业消息的最佳实践 178

12.9 小结 179

第13章 用JavaMail处理邮件服务 180

13.1 电子邮件协议 180

13.2 扩展JavaMail API的能力 181

13.2.1 升级JavaMail API版本 181

13.2.2 安装Sun POP3扩展 182

13.2.3 安装第三方扩展 182

13.3 JavaBeans Activation Framework 183

13.4 JavaMail API的核心类 183

13.4.1 Session 183

13.4.2 Message 183

13.4.3 Address 183

13.4.4 Transport 184

13.4.5 Authenticator 184

13.4.6 Store 184

13.4.7 Folder 184

13.5 JavaMail和WebLogic Server 184

13.5.1 用Mail Session配置WebLogic Server 184

13.5.2 Mail Session属性 185

13.6 创建电子邮件组件 186

13.6.1 发送消息 186

13.6.2 获取消息 190

13.6.3 用户验证 191

13.6.4 回复消息 192

13.6.5 转发消息 193

13.6.6 使用附件 194

13.7 JavaMail和全球拍卖应用程序 195

13.7.1 创建AuctionMaller工具类 196

13.8 小结 196

第四部分 在WebLogic应用程序中使用Web技术

第14章 编写WebLogic Server Servlet 199

14.1 Servlet 2.3规范 199

14.2 Servlet与其他的方法 200

14.3 Servlet生命周期 201

14.3.1 配置、加载和实例化 201

14.3.2 初始化 201

14.3.3 处理 202

14.3.4 卸载Servlet 203

14.4 编写简单的Servlet 203

14.4.1 第一个Servlet 204

14.5 什么时候使用servlet 205

14.5.1 作为MVC控制器 206

14.5.2 作为会话跟踪器 206

14.6 Servlet API 206

14.6.1 包结构 206

14.6.2 Servlet接口 206

14.6.3 ServletConfig接口 207

14.6.4 ServletContext接口 207

14.6.5 ServletRequest接口 209

14.6.6 ServletResponse接口 209

14.6.7 Servlet 2.3中的其他接口 210

14.6.8 HTTP Servlet API 210

14.6.9 HttpServletResponse 213

14.6.10 Servlet异常 214

14.7 Servlet线程模型 214

14.8 使用Servlet API 215

14.8.1 HTTP Servlet Skeleton 215

14.8.2 使用doGet()和doPost() 216

14.8.3 处理请求和响应 216

14.9 指派到其他资源 220

14.9.1 请求指派程序(Request Dispatcher) 220

14.10 高级Servlet编程 222

16.10.1 通用Servlet 222

16.10.2 请求和响应流 224

16.10.3 请求和响应包装器 224

16.10.4 处理会话 225

16.10.5 过滤器 234

14.11 实现Servlet的最佳实践 237

14.12 小结 239

第15章 编写WebLogic Server JavaServer Pages 240

15.1 介绍JSP 240

15.2 WebLogic Server如何使用Servlet 241

15.2.1 JSP编译器 242

15.3 什么时候使用JSP 243

15.4 JSP语法 243

15.4.1 指令 243

15.4.2 脚本元素 245

15.4.3 操作 247

15.5 JSP隐含对象 251

15.6 简单的JSP页 252

15.7 配置和部署WebLogic JSP 253

15.7.1 为JSP配置WebLogic 253

15.8 JSP最佳实践 256

15.9 小结 256

第16章 JavaBean和 模型-视图-控制器(MVC)体系结构 257

16.1 MVC体系结构 257

16.1.1 视图层实现 257

16.1.2 控制层实现 258

16.1.3 模型层实现 258

16.2 JavaBean介绍 259

16.3 如何将JavaBean结合到Servlet-JSP工作流程中 260

16.4 MVC最佳实践 260

16.4.1 表示层设计模式 260

16.4.2 控制层设计模式 261

16.4.3 模型层设计模式 261

16.5 小结 262

第17章 使用JSP标签库 263

17.1 JSP标签库的使用 263

17.2 JSP标签库语法 263

17.3 WebLogic Server提供的标签库 264

17.3.1 WebLogic自定义标签 264

17.3.2 WebLogic验证标签 265

17.3.3 使用WebLogic Server标签库 265

17.3.4 使用WebLogic验证标签库的例子 266

17.4 WebLogic Server EJB to JSP的集成工具 266

17.4.1 生成EJB到JSP标签库 267

17.4.2 在JSP页中使用EJB标签 267

17.5 使用标签库——最佳实践 268

17.6 JSP标签库的更多资源 269

17.7 小结 269

第18章 创建JSP标签库 270

18.1 应当什么时候创建JSP标签库 270

18.2 构建JSP标签所需步骤概述 270

18.3 标签处理程序生命周期 271

18.3.1 标签正文异常 273

18.4 常用JSP标签类和接口 273

18.5 创建一个简单的标签 273

18.6 创建有正文的标签 274

18.7 使用自定义标签定义脚本变量 275

18.8 创建标签库的最佳实践 276

18.9 小结 276

第19章 使用Struts 277

19.1 安装Struts 277

19.2 介绍Struts体系结构 278

19.3 配置Struts 279

19.4 struts-config.xml文件 279

19.4.1 <action-mappings> 280

19.4.2 <forward> 280

19.4.3 <data-sources> 280

19.5 使用Struts框架的后端编程 280

19.5.1 操作类 281

19.5.2 使用Actionmapping类 281

19.5.3 使用ActionForm类 281

19.5.4 编程Struts错误 282

19.5.5 数据库连接性 283

19.6 使用Struts框架的前端程序 284

19.6.1 在Struts中显示文字 284

19.6.2 显示错误 285

19.6.3 使用Struts表单 285

19.6.4 Struts逻辑标签 287

19.6.5 整合到一起 288

19.7 Struts简单应用程序 289

19.8 小结 289

第五部分 在WebLogic应用程序中使用企业JavaBean

第20章 企业JavaBean和WebLogic Server 291

20.1 EJB体系结构——概述 291

20.1.1 EJB类型 292

20.2 EJB容器 295

20.2.1 容器的定义 295

20.2.2 生命周期管理 296

20.2.3 基本服务 298

20.3 EJB实现 302

20.3.1 Bean类 302

20.3.2 远程接口 303

20.3.3 Home接口 304

20.3.4 本地和本地Home接口 305

20.3.5 主键 306

20.3.6 EJB异常 306

20.3.7 EJB命名规范 307

20.4 EJB部署描述符 307

20.4.1 J2EE描述符——ejb-jar.xml 308

20.4.2 特定于WebLogic的描述符 309

20.4.3 创建部署描述符 310

20.5 EJB部署 311

20.5.1 EJBGen 311

20.5.2 打包EJB 312

20.5.3 WebLogic Bullder工具 312

20.5.4 用控制台部署 313

20.5.5 使用weblogic.Deployer实用程序 314

20.6 其他EJB功能 314

20.6.1 EJB安全性 315

20.6.2 EJB环境项 317

20.6.3 EJB和资源引用 318

20.6.4 EJB-QL 321

20.6.5 实体关系 321

20.7 小结 321

第21章 使用会话bean 322

21.1 组合会话bean 323

21.2 案例分析:XYZ航空在线预订系统 324

21.3 使用无状态会话bean 325

21.3.1 远程接口 325

21.3.2 了解异常 326

21.3.3 远程Home接口 326

21.3.4 本地接口 327

21.3.5 本地Home接口 327

21.3.6 bean类 328

21.3.7 开发AirlineReservation EJB 329

21.3.8 部署描述符 329

21.3.9 打包和部署bean 331

21.3.10 从客户机访问无状态会话bean 332

21.3.11 无状态会话bean的生命周期 333

21.4 使用有状态会话bean 334

21.4.1 远程接口 334

21.4.2 远程Home接口 335

21.4.3 本地接口和本地Home接口 336

21.4.4 bean类 336

21.4.5 有状态会话bean的部署描述符 337

21.4.6 部署有状态会话bean 338

21.4.7 从客户机访问有状态会话bean 339

21.4.8 有状态会话bean的生命周期 339

21.5 会话bean和WebLogic Server群集 340

21.5.1 群集无状态会话bean 341

21.5.2 群集有状态会话bean 342

21.6 事务和会话bean 344

21.6.1 容器管理的事务 345

21.6.2 bean管理的事务 346

21.7 最佳实践 347

21.7.1 默认会话bean类 347

21.7.2 组件接口 347

21.7.3 避免有状态会话bean链 348

21.7.4 理解会话bean状态是非事务的 348

21.7.5 仔细选择事务 348

21.7.6 容器管理事务优先于bean管理事务 349

21.7.7 避免事务跨越用户思考时间 349

21.7.8 理解Supports事务属性的含义 349

21.7.9 无状态bean优先于有状态bean 349

21.7.10 避免有状态会话钝化 350

21.7.11 使用适当的设计模式 350

21.7.12 避免使用线程 351

21.7.13 避免使用非final静态变量 351

21.8 小结 351

第22章 使用实体bean 352

22.1 什么是实体bean 352

22.1.1 容器管理持久性和bean管理持久性 353

22.2 实体bean提供了什么 353

22.3 实体bean生命周期 353

22.4 实体bean的类和接口 354

22.4.1 主键 354

22.4.2 Home接口 354

22.4.3 远程接口 355

22.4.4 bean类 355

22.4.5 部署描述符 356

22.4.6 本地接口 356

22.4.7 主键类 357

22.4.8 值对象 357

22.5 创建BMP实体bean 357

22.5.1 创建Home接口 357

22.5.2 创建值对象 358

22.5.3 创建远程接口 358

22.5.4 创建bean类 358

22.5.5 创建部署描述符 359

22.5.6 BMP注释 360

22.6 创建CMP实体bean 360

22.6.1 创建Home接口 360

22.6.2 创建值对象 361

22.6.3 创建远程接口 361

22.6.4 创建bean类 361

22.6.5 创建部署描述符 361

22.6.6 容器管理关系 362

22.7 EJB中的关系缓存 364

22.8 实体bean中的缓存 364

22.9 WebLogic查询语言 365

22.10 高级实体bean特性 365

22.11 在WebLoigc Server 8.1中用于EJB的工具 366

22.12 WebLogic 8.1中被否决的EJB特性 367

22.13 实体bean最佳实践 367

22.14 小结 368

第23章 使用消息驱动bean 369

23.1 何时使用消息驱动bean 369

23.2 如何创建消息驱动bean 370

23.2.1 消息驱动bean类 370

23.2.2 消息驱动bean生命周期 370

23.2.3 处理JMS消息 371

23.2.4 设置上下文 371

23.2.5 部署消息驱动bean 371

23.3 示例消息驱动bean 372

23.4 消息驱动bean最佳实践 374

23.5 小结 375

第六部分 使用WebLogic Server 应用程序

第24章 测试和调试应用程序 377

24.1 软件测试简介 377

24.2 尽早发现问题:单元测试 378

24.2.1 安装和运行Junit 378

24.2.2 一个简单的Junit例子 378

24.2.3 在WebLogic中进行单元测试 379

24.2.4 在WebLogic内部使用Cactus进行单元测试 380

24.2.5 一个使用Cactus的例子 380

24.2.6 Cactus的安装和运行 381

24.3 使用日志记录API收集信息 382

24.3.1 WebLogic日志记录服务 383

24.4 使用集成调试器调试WebLogic 384

24.4.1 调试应用程序的准备工作 384

24.4.2 调试JSP和EJB 385

24.5 最佳实践 386

24.5.1 单元测试最佳实践 386

24.5.2 日志记录最佳实践 386

24.5.3 调试最佳实践 387

24.6 小结 387

第25章 优化WebLogic Server应用程序 389

25.1 定义不同类型的性能测试 389

25.2 准备性能与负载测试 390

25.2.1 模拟用户行为并与业务人员打交道 390

25.2.2 决定何时进行测试 390

25.2.3 基准测试的有效性 391

25.3 如何进行性能测试 391

25.3.1 测量性能 391

25.3.2 定义目标 392

25.3.3 进行基准测试 392

25.3.4 分析 392

25.3.5 应用程序代码 393

25.3.6 解释结果 393

25.4 要调整的方面 394

25.4.1 操作系统 394

25.4.2 CPU和RAM 394

25.4.3 网络性能 395

25.4.4 Java虚拟机的选择 395

25.4.5 Java虚拟机选项 395

25.5 WebLogic Server调整 397

25.5.1 WebLogic Server性能补丁 398

25.5.2 默认队列与执行线程 398

25.5.3 处理溢出情况 399

25.5.4 另外的执行队列 399

25.5.5 缓冲区连接 400

25.5.6 自动检测低内存情况 400

25.5.7 检测阻塞线程 401

25.5.8 选择速度更快的Java编译器 401

25.5.9 使用生产(产品)模式 401

25.5.10 日志文件大小 402

25.5.11 使用WebLogic Server群集 402

25.6 数据库和SQL调整 402

25.6.1 连接池 403

25.6.2 缓存预备语句 403

25.6.3 JDBC驱动程序类型 403

25.6.4 数据库Schema设计 403

25.6.5 使用正确的索引 403

25.6.6 使用存储过程 404

25.6.7 减少往返次数 404

25.6.8 在中间层中缓存数据 404

25.6.9 灵活的SQL 404

25.6.10 企业JavaBean调整 404

25.7 一个性能测试与调整的例子 406

25.7.1 负载测试工具Grinder 406

25.7.2 Grinder体系结构 406

25.7.3 GAMS基准测试环境 407

25.7.4 指定GAMS的性能目标 407

25.7.5 了解用户行为 408

25.7.6 创建用户脚本 408

25.7.7 初始化我们的环境 409

25.7.8 注册用户 414

25.8 最佳实践 417

25.8.1 总体考虑 418

25.8.2 性能测试计划 418

25.8.3 JRockit 8.1内存管理 418

25.8.4 EJB调整 418

25.8.5 一般的Java编码技巧 419

25.9 小结 420

第七部分 WebLogic Server安全

第26章 Web应用程序与安全性 422

26.1 Web应用程序安全问题概述 422

26.2 影响安全的趋势 423

26.2.1 破解者的能力 423

26.2.2 当今系统的复杂性 423

26.2.3 病毒的泛滥 424

26.2.4 蠕虫的力量 425

26.2.5 其他破解技术 425

26.3 易受攻击的区域 425

26.3.1 DNS服务器 426

26.3.2 路由器 426

26.3.3 主机和应用程序 426

26.3.4 现场事务 426

26.4 攻击 427

26.4.1 网络攻击 427

26.4.2 分布式网络攻击 427

26.4.3 企业攻击 428

26.4.4 包嗅探器 428

26.4.5 中间人攻击 428

26.5 应对安全风险的技术 429

26.5.1 加密 429

26.5.2 身份验证、数据完整性、不可否认与数字签名 429

26.5.3 发证机构 430

26.5.4 安全套接字层(SSL) 430

26.5.5 公钥基础结构 430

26.5.6 反病毒软件 431

26.5.7 个人防火墙软件 431

26.5.8 反嗅探器工具 432

26.6 应对安全风险的最佳实践 432

26.6.1 建立公司的安全策略 432

26.6.2 保证计算机的物理安全 432

26.6.3 及时修正安全隐患 433

26.6.4 使用复杂密码并保证密码安全 433

26.6.5 加密通信和使用证书 433

26.6.6 简化基础结构 433

26.6.7 看一看日志文件和事件日志 433

26.7 小结 434

第27章 WebLogic Server如何实现安全 435

27.1 J2SE安全模型 435

27.2 J2SE安全模型 436

27.2.1 用户 436

27.2.2 组 436

27.2.3 角色 436

27.2.4 受限制的资源 437

27.2.5 Web应用程序部署描述符 437

27.2.6 身份验证 437

27.2.7 如何指定验证方法? 438

27.2.8 如何指定安全性? 439

27.3 WebLogic Server中安全是如何工作的 443

27.3.1 WebLogic Server安全框架的目标 444

27.3.2 Java验证和授权服务 445

27.3.3 客体和主体 445

27.3.4 WebLogic Server安全区域 446

27.3.5 安全角色 446

27.3.6 安全提供程序 447

27.3.7 关于安全提供程序和区域的规则 449

27.4 从WebLogic Server 6.x迁移 450

27.4.1 兼容性区域 450

27.4.2 区域适配器验证提供程序 450

27.5 小结 450

第28章 保护WebLogic Server与 WebLogic Server应用程序 451

28.1 保护WebLogic Server应用程序 451

28.1.1 选择区域 451

28.1.2 定义用户和组 452

28.1.3 定义用户 452

28.1.4 定义组 453

28.1.5 授予全局角色 454

28.1.6 授予局部角色 455

28.1.7 创建安全策略 456

28.1.8 轻量级目录访问协议 457

28.1.9 使用外部LDAP服务器 457

28.1.10 从以前的WebLogic Server版本迁移安全 457

28.1.11 定制默认区域 458

28.1.12 选择一个默认区域 458

28.2 保护Java客户 458

28.2.1 JNDI验证 459

28.3 JAAS简介 459

28.3.1 JAAS登录配置文件 459

28.3.2 回调处理程序 460

28.3.3 实例化LoginContext 460

28.3.4 UserNamePasswordLoginModule 461

28.3.5 调用login()方法 461

28.3.6 PribilegedAction与privilegedExceptionAction 461

28.3.7 执行代码 461

28.4 创建定制的安全提供程序 462

28.4.1 实现SecurityProvider 462

28.4.2 实现AuthenticationProvider 463

28.4.3 SampleAuthenticationProviderImpl 463

28.4.4 实现LoginModule 464

28.4.5 SampleLoginModuleImpl 464

28.4.6 MBean定义文件和WebLogic MBeanMaker 465

28.4.7 建立自定义的安全提供程序 465

28.4.8 运行自定义的安全提供程序 465

28.4.9 从这里要到哪里 466

28.5 使用安全套接字层 467

28.5.1 生成数字证书 467

28.5.2 将SSL用于服务器验证 468

28.5.3 SSL用于相互验证 468

28.6 建立域间信任关系 468

28.7 最佳安全实践 469

28.7.1 设置用户锁定 469

28.7.2 连接过滤 469

28.7.3 BEA Dev2Dev建议和通知 470

28.7.4 保护WebLogic Server计算机和文件系统 470

28.7.5 保护网络连接 470

28.7.6 防止拒绝服务攻击 470

28.7.7 启用审核 471

28.7.8 其他安全建议 471

28.8 小结 471]

第八部分 WebLogic Server企业应用程序集成

第29章 WebLogic Server和XML技术 474

29.1 XML简介 474

29.1.1 XML头 475

29.1.2 XML内容 476

29.2 定义XML文档 480

29.2.1 文档类型定义 480

29.2.2 元素 480

29.2.3 属性列表 481

29.2.4 XML Schema 482

29.3 XML解析器 486

29.3.1 SAX 487

29.3.2 使用DOM解析XML 492

29.3.3 用于XML解析的Java API 495

29.4 WebLogic Server XML Streaming API 497

29.4.1 解析XML文档 497

29.4.2 生成新的XML文档 500

29.5 其他有用的XML特性 501

29.5.1 WebLogic快速解析器 501

29.5.2 WebLogic Server XML注册表 501

29.5.3 XPath模式匹配 504

29.5.4 StreamXPath 506

29.5.5 XML编辑器 507

29.5.6 XMLBeans 507

29.6 可扩展样式表语言 507

29.6.1 XSL样式表 507

29.6.2 XML文件的转换 510

29.7 使用XML的最佳实践 510

29.7.1 自定义验证 510

29.7.2 使用外部实体解析 511

29.7.3 使用JAXP 511

29.7.4 Schema与DTD 511

29.7.5 考虑解析器的类型 511

29.7.6 XML设计 511

29.8 小结 511

第30章 WebLogic Server和Web服务 512

30.1 什么是Web服务 512

30.2 Web服务的作用 513

30.3 WebLogic对Web服务的支持 513

30.4 Web服务技术 514

30.4.1 简单对象访问协议 514

30.4.2 Web服务定义语言 515

30.4.3 通用描述发现和集成 516

30. 5 WebLogic Server的Web服务体系结构 516

30.6 在WebLogic中生成Web服务的工具 516

30.6.1 WebLogic WorkShop工具 517

30.6.2 Java代码和Ant任务 517

30.7 使用Java代码生成Web服务 517

30.7.1 选择并实现后端组件 517

30.7.2 其他Web服务特征 518

30.7.3 打包Web服务 518

30.7.4 使用Java类后端来构建Web服务 519

30.8 使用无状态会话bean后端生成Web服务 525

30.8.1 使用非简单数据类型 525

30.8.2 使用支持的数据类型生成操作 526

30.8.3 使用用户定义的数据类型 526

30.8.4 使用用户定义数据类型生成Web服务 527

30.8.5 汇编Web服务 527

30.9 使用SOAP消息句柄 528

30.10 保护Web服务 528

30.11 使用UDDI目录探索器 529

30.12 使用WebLogic WorkShop生成Web服务 529

30.12.1 WebLogic WorkShop体系结构 529

30.12.2 JWS文件和JSR 181 530

30.12.3 WebLogic WorkShop图形用户界面 530

30.12.4 使用WebLogic WorkShop生成Web服务 531

30.12.5 生成一个WebLogic WorkShop域 533

30.12.6 设置环境 533

30.12.7 配置域的WebLogic WorkShop 534

30.12.8 生成一个新的WebLogic WorkShop应用程序 535

30.12.9 使用WebLogic WorkShop控件 535

30.12.10 使用调试器 537

30.12.11 其他WebLogic WorkShop特征 538

30.13 Web服务的最佳实践 538

30.13.1 调试标志 538

30.13.2 确保互操作性 539

30.13.3 故障代码 539

30.13.4 减少网络开销 539

30.13.5 更熟悉Web服务技术 539

30.14 小结 539

第31章 传统系统与J2EE体系结构的集成 541

31.1 J2EE连接器体系结构和J2EE平台 542

31.2 WebLogic的Java连接器体系结构的定义 542

31.3 J2EE连接器体系结构和企业 543

31.3.1 什么是EIS? 543

31.3.2 对企业应用集成商的意义 544

31.3.3 B2B电子市场 544

31.3.4 面对J2EE连接器体系结构的挑战 545

31.4 使用Java连接器体系结构组件 545

31.4.1 资源适配器 545

31.4.2 系统级协定 546

31.4.3 公共客户机接口 546

31.4.4 BEA提供的J2EE-CA适配器客户示例 547

31.4.5 可用的商业J2EE-CA适配器 547

31.5 安全考虑 548

31.5.1 与安全有关的术语 548

31.5.2 密码凭证映射机制 548

31.5.3 WebLogic身份验证机制 549

31.5.4 签署(Sign-on)机制 549

31.6 事务管理 550

31.6.1 事务支持 550

31.6.2 没有事务支持 551

31.6.3 本地事务支持 551

31.6.4 XA事务支持 551

31.7 配置WebLogic J2EE-CA 552

31.7.1 资源适配器开发工具 552

31.7.2 配置资源适配器 553

31.7.3 WebLogic的特殊配置 554

31.8 编写资源适配器 555

31.8.1 连接所需要的接口 555

31.8.2 事务管理协定 557

31.8.3 出错处理 558

31.8.4 把工作汇总 558

31.9 打包和部署问题 561

31.9.1 打包资源适配器 561

31.9.2 部署资源适配器 562

31.10 J2EE连接器体系结构示例 564

31.10.1 设置JDBC示例 564

31.10.2 设置SAP示例 566

3.11 小结 569

第32章 在WebLogic服务器中使用SAP的Java连接器 570

32.1 什么是JCo 570

32.1.1 远程函数调用 571

32.1.2 SAP的数据处理 571

32.1.3 SAP数据字典 571

32.2 安装JCo 572

32.2.1 下载JCo 572

32.2.2 JCo 1.1 572

32.2.3 JCo 2.0 573

32.3 SAP系统设置 573

32.4 在JCo中的客户机编程 573

32.4.1 Import语句 574

32.4.2 SAP连接 574

32.4.3 建立SAP连接池 575

32.4.4 从属性文件装入参数 576

32.5 调用SAP的函数 576

32.5.1 Java和SAP间的类型转换 577

32.5.2 设置数据和获取数据 578

32.5.3 处理表 579

32.5.4 SAP中的事务 581

32.5.5 过滤SAP数据 582

32.6 JCo中的异常处理 582

32.6.1 JCo异常 582

32.6.2 类型转换异常 583

32.6.3 ABAP异常 583

32.6.4 使用JCo的Web应用程序示例 584

32.7 用JCo进行服务器编程 585

32.7.1 建立JCo服务器 585

32.7.2 建立存储库 586

32.7.3 建立JCO.Server对象 588

32.7.4 SAP RFC设置(SM59) 589

32.7.5 运行服务器应用程序 590

32.8 有用的BAPI和RFC 591

32.9 小结 592

第33章 jCOM——WebLogic Server的Java/COM桥 593

33.1 了解jCOM 593

33.2 jCOM的工作方式 594

33.3 判断jCOM是否适合应用程序 595

33.4 决定正确的jCOM环境设置 595

33.5 零客户机安装 596

33.6 在DCOM,本机进程内(Native In Process)和本机进程外(NativeOutof Process)模式之间选择 597

33.6.1 DCOM模式 597

33.6.2 本机进程外模式 598

33.6.3 本机进程内模式 598

33.7 早绑定和迟绑定模型 598

33.7.1 早绑定 599

33.7.2 迟绑定 599

33.8 保护Java对象免受未经授权的访问 600

33.9 使用jCOM工具 601

33.9.1 通过com2java连接到COM 601

33.9.2 通过java2com连接到Java 602

33.9.3 用regjvm工具注册JVM 603

33.9.4 用regtlb工具注册类型库 604

33.10 银行帐户示例——Java客户机访问COM组件 605

33.10.1 建立JSP前端 605

33.10.2 建立后端账户COM组件 606

33.10.3 手工建立银行账户后端COM组件 606

33.10.4 在服务器上安装COM组件 606

33.10.5 WebLogic Server设置 607

33.10.6 运行银行账户接口应用程序 608

33.11 库存项目示例——COM客户访问EJB 608

33.11.1 WebLogic Server设置 609

33.11.2 Visual Basic客户通过迟绑定访问库存项目 610

33.11.3 Visual Basic客户通过早绑定访问库存项目 610

33.11.4 建立VB客户 613

33.12 事件处理 613

33.13 处理数据类型 614

33.14 小结 615

第34章 CORBA和Tuxedo集成 616

34.1 WebLogic的Tuxedo连接器 616

34.1.1 WTC和JOLT 617

34.1.2 JATMI编程 617

34.1.3 完整的WTC客户机的示例 626

34.1.4 WTC服务EJB 627

34.1.5 JATMI事务 627

35.1.5.3 WTC和JMS 628

34.1.6 WTC的安全 630

34.1.7 WTC和WebLogic群集 631

34.1.8 WTC和工作流处理 631

34.2 RMI over IIOP 631

34.2.1 RMI over IIOP剖析 631

34.2.2 WebLogic RMI-IIOP 632

34.2.3 编程模型对比: IDL与RMI 633

34.3 小结 635

第35章 使用管理控制台管理应用程序 637

35.1 WebLogic Server管理 637

35.2 连接到管理控制台 638

35.3 管理控制台用户界面概览 638

35.4 配置控制台 639

35.5 配置应用服务器域 640

35.5.1 域的常规配置 641

3.5.5.2 域的JTA配置 641

35.5.3 域的SNMP配置 641

35.5.4 域的日志记录配置 641

35.5.5 域的应用程序配置 642

35.6 管理网络资源 642

35.6.1 配置服务器 642

35.6.2 配置群集 648

35.6.3 配置计算机 649

35.7 部署应用程序和模块 650

35.8 配置WebLogic和J2EE服务 650

35.8.1 配置jCOM服务 651

35.8.2 配置JDBC服务 652

35.8.3 JMS阈值与配额 654

35.8.4 配置消息传递桥服务 656

35.8.5 配置XML服务 656

35.8.6 配置JTA服务 657

35.8.7 配置SNMP服务 657

35.8.8 配置WTC服务 658

35.8.9 配置WLEC服务 659

35.8.10 配置Jolt服务 659

35.8.11 配置虚拟主机服务 659

35.8.12 配置Mail服务 659

35.9 管理安全域 660

35.10 配置域日志过滤器 660

35.11 监视管理任务 660

35.12 小结 661

第36章 安装、配置和部署 WebLogic Server群集 662

36.1 介绍WebLogic Server群集 662

36.2 创建和配置物理群集环境 663

36.2.1 创建群集域 663

36.2.2 启动群集中的管理与托管服务器 665

36.2.3 使用HTTP代理访问群集 665

36.3 群集化应用程序和组件 667

36.3.1 负载平衡算法 667

36.3.2 群集范围内的JNDI树 668

36.3.3 HTTP会话状态复制 668

36.3.4 借助副本识别存根的EJB与RMI组件 670

36.3.5 群集化JDBC连接 671

36.3.6 HTTP会话与群集 672

36.3.7 群集化WebLogic JMS 672

36.4 对群集服务的故障转移支持 673

36.4.1 在对等服务器实例之间使用IP Socket进行故障检测 673

36.4.2 使用规则服务器心跳消息进行故障检测 673

36.5 群集最佳实践 674

36.5.1 单层群集体系结构 674

35.5.2 多层群集架构 674

35.5.3 代理群集体系结构 675

36.6 小结 675

第37章 使用JMX服务配置管理应用程序 676

37.1 JMX的定义以及使用它的原因 676

37.1.1 JMX的功能 676

37.1.2 JMX的结构 677

37.1.3 MBean模板 678

37.2 一个基本的MBean示例 678

37.2.1 在WebLogic MBean服务器中注册自定义MBean 682

37.3 WebLogic如何使用JMX 685

37.3.1 WebLogic Server MBean 685

37.3.2 WebLogic JMX扩展 686

37.3.3 访问WebLogic Server MBean 686

37.4 JMX通知模型和监视器 688

37.4.1 通知广播器 688

37.4.2 通知监听器 689

37.5 小结 692

第38章 通过命令行接口进行管理 693

38.1 管理命令 693

38.1.1 语法 694

38.1.2 服务器生命周期命令 695

38.1.3 服务器状态命令 695

38.1.4 JDBC连接池命令 696

38.1.5 MBean管理命令 696

38.1.6 批处理命令 696

38.1.7 群集命令 696

38.2 命令实例与脚本 697

38.2.1 HELP 697

38.2.2 PING 697

38.2.3 LIST 698

38.2.4 THREAD_DUMP 698

38.3 使用命令界面命令生成脚本 698

38.4 使用命令行接口的Ant 701

38.5 命令行接口管理的最佳实践 701

38.6 小结 702

第十部分 附录

附录A 为WebLogic开发创建新域的快速参考 704

创建新的WebLogic Server域 704

通过Configuration Wizard创建域 704

部署HTML页面 708

部署JSP 708

部署servlet 709

附录B 从以前版本进行迁移 711

从版本6.0/6.1/7.0迁移到版本8.1 711

将WebLogic 6.0/6.1/7.0安装升级到8.1 711

升级使用版本6.0/6.1/7.0 WebLogic的应用程序 713

从版本4.5/5.1迁移到8.1 713

将WebLogic 4.5/5.1安装升级到8.1 713

升级使用版本4.5/5.1 WebLogic的应用程序 715

对所有迁移的安装建议 715

对所有迁移的应用程序建议 716

servlet方面的建议 716

EJB方面的建议 717

JMS方面的建议 717

附录C 联合使用WebLogic Workshop 8.1 和WebLogic Server 718

Workshop 8.1——不止是一个IDE 718

Workshop 8.1——不止是一个Web服务工具 719

Workshop 8.1的目标 719

Workshop的主要焦点 720

Workshop 8.1的功能 722

企业级Web服务开发 722

Web应用程序开发 722

门户与集成应用程序开发 723

使用Workshop进行开发 723

Workshop中的代码注释 724

Workshop JWS 724

Java页面流 724

XMLBean 725

使用Workshop进行调试和测试 726

调试Web应用程序 726

调试Web服务 726

测试Web服务 726

Workshop 8.1与Workshop 7.0的兼容性 727

Web服务 727

其他组件 727

在Workshop中进行面向服务的开发 727