第Ⅰ部分JBoss应用服务器 3
第1章 请为JBoss投票 3
1.1 JBoss简介 3
1.1.1 JBoss的含义 4
1.1.2 JEMS lineup 5
1.1.3 JBoss AS受欢迎的原因 6
1.2安装JBoss应用服务器 8
1.2.1安装的准备工作 8
1.2.2由二进制发布包进行安装 9
1.2.3使用JEMS安装程序 10
1.3浏览安装内容 11
1.3.1 bin目录 12
1.3.2 client目录 12
1.3.3 docs目录 13
1.3.4 lib目录 13
1.3.5 server目录 14
1.3.6服务器配置 14
1.3.7配置结构 15
1.3.8定制配置 17
1.4启动和关闭应用服务器 17
1.4.1启动服务器 18
1.4.2启动另一个配置 19
1.4.3验证服务器正在运行 19
1.4.4关闭服务器 20
1.5部署服务器 21
1.5.1创建应用程序 21
1.5.2部署应用程序 23
1.5.3取消部署应用程序 24
1.6本章小结 24
1.7参考资料 25
第2章 应用服务器管理 27
2.1 JBoss应用服务器的体系结构 27
2.1.1微容器 28
2.1.2 JMX 30
2.2配置应用服务器 31
2.2.1配置日志 32
2.2.2配置目录位置 36
2.2.3定义系统属性 37
2.3管理工具 38
2.3.1使用JMX控制台 38
2.3.2使用twiddle实用工具 40
2.4 MBean 41
2.4.1查看系统属性 41
2.4.2查看JNDI名称空间 42
2.4.3更改日志级别 42
2.4.4增加线程池的大小 43
2.4.5获取应用服务器信息 43
2.5本章小结 43
2.6参考资料 43
第3章 部署应用程序 45
3.1部署 45
3.1.1部署应用程序 46
3.1.2应用程序打包 47
3.1.3应用程序类型 48
3.1.4部署排序 49
3.1.5部署配置选项 50
3.2类加载 52
3.2.1多个类加载程序 53
3.2.2作用域类 54
3.2.3加载程序存储库 55
3.3修复常见的部署错误 56
3.3.1无异常的类 56
3.3.2复制JAR文件 57
3.3.3 zip文件错误 57
3.3.4类强制类型转换异常处理 58
3.4部署各种应用程序 58
3.4.1部署数据源 59
3.4.2部署一个Hibernate存档文件 64
3.5本章小结 69
3.6参考资料 69
第4章 确保应用程序安全 71
4.1安全性 72
4.1.1应用程序的安全性 72
4.1.2身份验证 74
4.1.3授权 75
4.1.4配置安全 76
4.1.5动态登录配置 77
4.1.6在服务器上记录安全信息 78
4.2使用安全通信 79
4.2.1对称加密和非对称加密 79
4.2.2证书和源验证 81
4.2.3创建并签名证书 82
4.2.4修改cacerts文件 83
4.2.5基于证书的客户端验证 84
4.2.6配置可以识别SSL的安全域 86
4.3配置登录模块 87
4.3.1使用基于文件的登录模块 88
4.3.2使用数据库登录模块 90
4.3.3使用LDAP登录模块 91
4.3.4使用身份登录模块 97
4.3.5堆叠登录模块 98
4.3.6使用客户端证书登录模块 99
4.4本章小结 100
4.5参考资料 100
第Ⅱ部分 应用程序服务 103
第5章 配置JBoss Web服务器 103
5.1 Web应用程序 104
5.1.1 Web应用程序结构 104
5.1.2 Web应用程序配置 105
5.2配置JBoss Web服务器 108
5.2.1定位密钥目录 108
5.2.2 JBoss Web服务器配置 109
5.2.3 WAR部署器配置文件 112
5.3配置URL路径 113
5.3.1启用虚拟主机 114
5.3.2配置上下文路径 116
5.3.3配置根上下文路径 118
5.4配置连接器 119
5.4.1连接器配置 120
5.4.2配置并发性 121
5.4.3配置超时 122
5.4.4配置一个代理主机名和端口 122
5.5配置Web类加载 122
5.6使用阀门 123
5.7配置JavaServer Faces 124
5.8本章小结 125
5.9参考资料 126
第6章 保护Web应用程序 127
6.1配置Web安全 127
6.1.1在web.xml中配置安全性 129
6.1.2在jboss-web.xml中配置安全性 130
6.1.3在server xml中配置安全性 131
6.2验证Web用户 131
6.2.1 Web身份验证策略 133
6.2.2基本身份验证 134
6.2.3基于表单的身份验证 135
6.2.4摘要式身份验证 136
6.3授权用户 137
6.3.1配置授权 137
6.3.2允许访问任何通过身份验证的用户 138
6.4加密Web通信 139
6.4.1启用HTTP 139
6.4.2启用传输保证 141
6.4.3启用相互身份验证 142
6.4.4创建浏览器证书 144
6.5启用客户端-证书验证 144
6.5.1启用协议级别相互验证 145
6.5.2设置验证方法 145
6.5.3指定JaasSecurityDomainMBean 145
6.5.4指定安全域 146
6.5.5从应用程序指向安全域 146
6.5.6从证书中选择构建主体的策略 147
6.5.7为授权数据库添加主体和角色 147
6.5.8为服务器的信任库添加客户端证书 148
6.5.9创建浏览器证书 148
6.6更改默认安全域 148
6.7本章小结 149
6.8参考资料 150
第7章 配置企业应用程序 151
7.1 EJB 152
7.1.1会话bean 153
7.1.2 Hibernate和JPA 154
7.1.3企业打包 155
7.2创建EJB应用程序 156
7.2.1编码示例应用程序 157
7.2.2打包并运行示例应用程序 160
7.3 EJB配置 161
7.3.1文件的存放位置 161
7.3.2配置EJB应用程序 162
7.3.3配置EJB服务器 165
7.4配置会话bean 166
7.4.1更改JNDI绑定 166
7.4.2查找会话bean 168
7.4.3配置EJB容器 168
7.5配置实体持久性 171
7.5.1注入Hibernate对象 171
7.5.2部署Hibernate映射 172
7.6创建JMX服务对象 172
7.6.1创建服务对象 173
7.6.2运行示例应用程序 174
7.6.3不借助注入来访问MBean 175
7.7配置传输协议 176
7.7.1传输配置 176
7.7.2更改传输 178
7.8 EJB安全 179
7.8.1通过注释确保EJB的安全性 179
7.8.2通过配置确保EJB的安全性 182
7.8.3非集成安全性 183
7.8.4确保EJB通信安全 184
7.9本章小结 186
7.10参考资料 187
第8章JBoss Messaging 189
8.1消息发送系统 190
8.1.1消息发送系统体系结构 190
8.1.2消息发送模型 191
8.1.3 JMS API 191
8.1.4 JBoss Messaging体系结构 194
8.2开发JMS应用程序 194
8.2.1编写示例应用程序 195
8.2.2打包和运行示例应用程序 200
8.3使用消息驱动的bean 201
8.3.1创建MDB 202
8.3.2打包MDB 204
8.3.3借助于MDB使用描述符文件 205
8.4使用消息驱动的POJO 206
8.4.1实现消息驱动的POJO使用者 206
8.4.2使用消息驱动的POJO生产者 207
8.4.3打包消息驱动的POJO 208
8.5配置JBoss Messaging 209
8.5.1配置数据源 209
8.5.2配置访问控制 211
8.5.3配置目标 213
8.5.4更新应用程序 214
8.5.5运行修改的示例 216
8.5.6更新MDB 216
8.5.7配置安全消息传输 217
8.6本章小结 219
8.7参考资料 220
第9章 配置Web服务 221
9.1 Web服务 222
9.1.1 Web服务终端 222
9.1.2 SOAP绑定类型 223
9.2开发一个Web服务 223
9.2.1为Web服务编码 224
9.2.2对Web服务进行打包 225
9.2.3手动生成WSDL 226
9.2.4使用自上而下的方法创建一个Web服务 227
9.2.5开发客户端 228
9.2.6开发C#客户端 230
9.2.7再次学习SOAP绑定样式 231
9.3 JBossWS注释 232
9.3.1 WebContext注释 232
9.3.2 EndpointConfig注释 234
9.4确保Web服务的安全 235
9.4.1授权Web服务访问 235
9.4.2定义这个安全域 236
9.5加密SOAP消息 238
9.5.1生成安全证书 239
9.5.2使用WS-Security确保服务器的安全 240
9.5.3确保使用WS-Security客户端的安全 242
9.5.4签署使用WS-Security的消息 244
9.6本章小结 246
9.7参考资料 246
第Ⅲ部分JBoss Portal 249
第 10章JBoss Portal和portlets 249
10.1 JBoss Portal简介 250
10.1.1 JSR-168 250
10.1.2门户术语 251
10.1.3安装JBoss Portal 252
10.1.4管理JBoss Portal 254
10.2创建portlet 255
10.2.1对Image Portlet进行编码 256
10.2.2编码与JSP相关的源文件 260
10.2.3 portlet描述符 264
10.2.4建立并部署portlet 268
10.3创建portlet实例 268
10.3.1使用portlet-instances.xml文件创建实例 269
10.3.2使用Admin portlet创建实例 269
10.4声明portlet窗口 270
10.4.1使用*-object.xml文件声明portlet窗口 270
10.4.2使用Admin portlet声明portlet窗口 271
10.5本章小结 273
10.6参考资料 273
第11章 配置JBoss Portal 275
11.1配置窗口的外观 275
11.2多个窗口和实例 278
11.3 CMS portlet 281
11.3.1收集示例CMS数据 281
11.3.2显示新内容 282
11.3.3访问CMS内容 284
11.4保护门户的安全 285
11.4.1创建新的账户 285
11.4.2管理角色 285
11.4.3访问控制 286
11.5开发定制门户 293
11.5.1定义必备要求 293
11.5.2满足要求的提议 294
11.5.3定义门户 294
11.5.4定制主题 297
11.5.5定制CMS内容 300
11.5.6打包门户 301
11.6本章小结 303
第Ⅳ部分 生产阶段 307
第12章 群集 307
12.1群集 307
12.1.1负载均衡 308
12.1.2群集的拓扑和组成 310
12.1.3自动发现和多播 311
12.1.4高可用性 312
12.1.5复制和容错 313
12.1.6状态钝化 316
12.1.7分布和群集 317
12.2建立一个简单的群集 318
12.2.1建立一个JBoss群集 318
12.2.2创建一个群集EJB 320
12.2.3部署应用程序 321
12.2.4调用群集EJB 321
12.3 JBoss群集 322
12.3.1 JGroups体系结构 323
12.3.2配置JBoss群集服务 325
12.3.3配置协议栈 327
12.4配置JBoss缓存 330
12.4.1检测JBoss Cache配置文件 330
12.4.2确定缓存的内容 333
12.5本章小结 334
12.6 参考资料 334
第13章 群集JBoss AS服务 337
13.1 HTTP负载均衡 338
13.1.1使用本机Web服务器进行负载均衡 338
13.1.2硬件负载均衡 339
13.2 HTTP会话复制 339
13.2.1配置复制 340
13.2.2会话用法 340
13.2.3使用字段级复制 342
13.2.4配置钝化 343
13.3群集会话bean 344
13.3.1负载均衡会话bean 344
13.3.2复制状态会话bean 345
13.4群集实体 346
13.5群集JNDI 349
13.5.1 HA-JNDI服务 349
13.5.2启用HA-JNDI 351
13.5.3访问HA-JNDI 352
13.5.4决定是否使用HA-JNDI 353
13.6本章小结 354
13.7参考资料 354
第14章 调整JBoss应用服务器 357
14.1定义性能 358
14.2性能调整方法 358
14.2.1整体性能调整 358
14.2.2性能分析测试周期 360
14.3调整硬件和网络 361
14.3.1设置网卡速度 362
14.3.2选择CPU的数量 363
14.3.3选择32位或64位的CPU 363
14.4调整操作系统性能 363
14.5调整JVM 366
14.5.1 Java堆 366
14.5.2垃圾回收 369
14.5.3收集垃圾回收数据 370
14.5.4选择堆设置 376
14.5.5处理内存不足异常 377
14.5.6更多的调整选项 378
14.6调整JBoss AS 378
14.6.1配置数据源 379
14.6.2配置HTTP请求线程池 380
14.6.3调整JSP servlet 381
14.7调整应用程序 382
14.7.1避免System.gc 383
14.7.2获取线程转储 383
14.8本章小结 386
14.9参考资料 387
第15章 进入生产阶段 389
15.1选择一个平台 389
15.1.1选择一个JVM 390
15.1.2选择JBoss AS版本 391
15.1.3选择平台 393
15.2并置多个应用服务器实例 394
15.2.1避免文件冲突 394
15.2.2避免端口冲突 395
15.2.3关闭多个节点 401
15.3删除不需要的服务 402
15.4保护服务器应用程序 403
15.4.1删除服务器应用程序 403
15.4.2对服务器应用程序添加安全设置 403
15.4.3限制对本地计算机的访问 404
15.5更改默认数据库 404
15.6把应用服务器作为一个服务启动 406
15.6.1在Windows中注册服务 407
15.6.2注册多个服务 408
15.6.3在Linux中注册服务 411
15.7配置JSP编译 413
15.8本章小结 414
15.9参考资料 415
附录A JNDI名称空间 417
附录B 更改 421