第1章 SOA架构概述及准备工作 1
1.1 SOA的核心实质 2
1.1.1 SOA和Web Service的根本区别 2
1.1.2 SOA架构的要点 3
1.2 基于SOA架构整合应用的技术组成 3
1.3 安装和配置BEA WebLogic 9.1 4
1.3.1 安装BEA WebLogic 9.1 4
1.3.2 配置BEA WebLogic 9.1 5
1.4 安装Eclipse 3.1.2和Lomboz 3.1.0插件 9
1.4.1 下载和安装各种工具和插件 11
1.4.2 调出Lomboz菜单 12
1.4.3 在Eclipse 3.1.2的Server插件中加入WebLogic 9.1 15
1.5 创建Lomboz J2EE Project和Web Module 19
1.5.1 创建Lomboz J2EE Proiect 19
1.5.2 创建Web Module 21
1.5.3 将Server加入Web Module 23
1.6 配置环境变量 23
1.7 改写webModule目录下面的index.jsp 25
1.8 Lomboz J2EE View 26
1.9 运行本章的例子 27
1.9.1 打开本章的例子 27
1.9.2 发布Web Module到应用服务器 27
1.9.3 在Eclipse 3.1.2上运行WebLogic 9.1 28
1.9.4 在WebLogic 9.1上安装和运行Web Module 29
1.9.5 在Eclipse中运行浏览器(Browser) 30
1.10 小结 31
2.1 Struts的MVC架构的基本原理 33
第2章 基于Eclipse的Struts编程详解 33
2.2 在Eclipse 3.1.2上装载Struts库 34
2.2.1 装载运行时的Struts库 34
2.2.2 装载编辑时的Struts库 35
2.3 ActionServlet类 37
2.3.1 ActionServlet的工作原理 37
2.3.2 配置ActionServlet 39
2.4.1 Form Bean的结构和功能 40
2.4 Form Bean类 40
2.4.2 创建静态Form Bean 41
2.5 Action Bean类 43
2.5.1 理解Action Bean类 43
2.5.2 创建Action Bean 44
2.6 配置Struts-config.xml 46
2.6.1 在Struts-config.xml定义转向Dispatch的路径 46
2.6.2 在Struts-config.xml中配置静态Form Bean 47
2.6.3 在struts-config.xml中配置动态Form Bean 47
2.6.4 在Struts-config.xml中配置Action Bean 48
2.6.5 配置controller 49
2.6.6 配置资源文件 49
2.7 创建基于页面输入校验的Struts Validator 49
2.7.1 Struts Validator的基本原理 50
2.7.2 配置Struts的页面校验文件 51
2.7.3 validator-rules.xml 52
2.7.4 Struts所提供的校验 52
2.7.5 创建validation.xml 53
2.7.6 在资源文件中配置错误信息 57
2.7.7 在Struts-config.xml中定义validator-rule.xml和validation.xml 58
2.7.8 在JSP中输出错误信息 58
2.8 Struts Validator的实例详解 58
2.8.1 required实例 58
2.8.2 用msg自定义新的错误信息的实例 59
2.8.3 minlength最小长度的校验实例 61
2.8.4 maxlength最大长度的实例 62
2.8.5 正则表达式mask的phone实例 63
2.8.6 E-mail的实例 64
2.8.7 float的实例 65
2.8.8 floatRange的实例 66
2.9 Struts的标签库 67
2.9.1 Struts的HTML标签库 67
2.9.2 Struts的Bean标签库 75
2.9.3 Struts的logic标签库 77
2.10.1 主页Main.jsp和链接页Top.jsp 83
2.10 使用JSP开发实例 83
2.10.2 注册页面Regis.jsp、成功页面Success.jsp和用户登录页面Login.jsp 85
2.10.3 用户查询UserList.jsp 90
2.11 创建Struts的Model 91
2.11.1 创建DTO(Data Transfer Object) 92
2.11.2 创建业务逻辑的应用接口 94
2.11.3 创建实现业务逻辑的类 94
2.12 运行本章的例子 96
2.13 小结 97
第3章 基于Eclipse的Struts+Session Bean编程详解 99
3.1 Stateless Session Bean实现分布式应用的基本原理 99
3.1.1 用RMI协议实现分布式应用的基本原理 100
3.1.2 Stateless Session Bean实现分布式应用的基本原理 100
3.2 用Eclipse和Lomboz实现Session Bean开发的基本原理和过程 102
3.3 通过Lomboz创建EJB Module 104
3.3.1 创建EJB Module 104
3.3.2 将Server加入EJB Module 105
3.4.1 通过Lomboz创建EJB Session Bean 106
3.4 在Eclipse上创建EJB Session Bearn 106
3.4.2 通过Lomboz创建EJB Session Bean的方法 109
3.4.3 实现EJB Session Bean的方法 112
3.5 通过Lomboz自动生成Session Bean的接口类 113
3.5.1 Lomboz生成Session Bean接口类的基本原理 114
3.5.2 在Eclipse上将EJB加入到Module 115
3.5.3 在Eclipse上创建Session Bean的接口类文件 117
3.5.4 远程接口(Remote Interface) 118
3.5.5 远程Home接口(Remote Home Interface) 119
3.5.7 本地Home接口(Local Home Interface) 120
3.5.6 本地接口(Local Interface) 120
3.5.8 EJB Session Bean 121
3.5.9 Session Bean Util类 122
3.6 实现Struts和EJB Session的集成 123
3.7 运行本章的例子 126
3.8 小结 127
第4章 基于Eclipse的Struts+Session Bean+Entity Bean编程详解 129
4.1.1 CMP实现数据库表的insert(增加) 130
4.1 CMP实现数据层操作 130
4.1.2 CMP实现数据库表的select(查询) 131
4.1.3 CMP取得数据库表记录中的字段 132
4.1.4 CMP修改数据库表记录中的字段 132
4.1.5 CMP实现数据库表的delete(删除) 133
4.2 用Eclipse和Lomboz实现CMP开发的基本原理和过程 133
4.3 数据库设计 134
4.3.1 创建MySQL数据库表格 135
4.4 在WebLogic上创建Data Source数据源 136
4.3.2 创建初始数据 136
4.4.1 将JDBC的Driver(类)放入WebLogic Server的Server class path 137
4.4.2 在WebLogic 9.1中创建数据源 137
4.5 在Eclipse Lomboz上创建EJB CMP 140
4.5.1 在Eclipse Lomboz上创建EJB CMP 141
4.5.2 Lomboz所创建的Entity Bean CMP 144
4.5.3 实现ejbCreate()方法 148
4.6 在Eclipse上将EJB Entity Bean加入EJB Module 149
4.6.1 用bean.xml查看所加入的EJB Entity Bean 150
4.6.2 用xdoclet.xml查看所加入的EJB Entity Bean 151
4.7 在Eclipse上自动生成EJB CMP接口类 152
4.7.1 在Eclipse上自动生成EJB CMP接口文件 152
4.7.2 远程接口(Remote Interface) 154
4.7.3 远程Home接口(Remote Home Interface) 155
4.7.4 本地接口(Local Interface) 156
4.7.5 本地Home接口(Local Home Interface) 157
4.7.6 CMP实体Bean 158
4.7.7 Data Access Bean 160
4.7.8 Bean Util(Bean辅助类) 161
4.8 创建Entity Bean CMP的复合主键类 163
4.8.1 创建Entity Bean CMP 163
4.8.2 用Eclipse Lomboz加入一个主键 164
4.8.3 定义复合主键类名 165
4.8.4 修改ejbCreate()方法返回复合主键 166
4.8.5 Lomboz自动生成的复合主键类Primary Key Class 167
4.8.6 与复合主键有关的远程Home接口 170
4.8.7 与复合主键有关的本地Home接口 171
4.8.9 在远程Home接口中生成相应的finder方法 172
4.8.8 在CMP实体Bean中加入finder的注释行 172
4.8.10 在本地Home中形成finder方法 173
4.9 配置CMP数据源 174
4.10 实现Session Bean和CMP的集成 176
4.11 Struts1.2.8+Session Bean+Entity Bean的实例 181
4.12 小结 182
第5章 基于Eclipse+Axis的Web Service、EJB、Struts的整合编程详解 183
5.1 Web Service的基本概念 184
5.1.1 快速理解WSDL 185
5.1.2 快速理解SOAP 189
5.1.3 快速理解UDDI 190
5.2 Web Service实现分布式服务的基本原理 190
5.2.1 基于JAX-RPC实现Web Service的过程 191
5.2.2 实例讲解JAX-RPC实现远程分布式透明调用的基本原理和机制 191
5.3 基于Eclipse+Axis开发Web Service的环境配置 195
5.4.2 发布Web Service到Web服务器 198
5.4.1 创建服务器端的Java Bean 198
5.4 基于Eclipse和Axis创建Java Bean的Web Service 198
5.4.3 测试基于Java Bean的Web Service 200
5.5 基于Eclipse和Axis创建无状态会话Bean的Web Service 201
5.5.1 为Web Service修改传输数据类的数据类型 202
5.5.2 创建无状态会话Bean 204
5.5.3 发布无状态会话Bean的Web Service 205
5.6 基于Eclipse和Axis创建WSDL 207
5.6.1 创建WSDL的ANT脚本 208
5.6.2 简介自动生成的WSDL文件 210
5.7 基于WSDL创建客户端的Java代码 212
5.7.1 WSDL创建客户端Java代码的脚本 212
5.7.2 WSDL所创建的Java客户端代码 214
5.8 Struts和Web Service的集成 218
5.9 创建Axis的TCP Monitor监控Web Service的运行 219
5.9.1 创建TCP Monitor的目录 220
5.9.2 运行Axis TCP Monitor 220
5.9.3 修改ServiceLocator 221
5.9.4 运行Web Srevice并实现TCP Monitor的监控 222
5.9.5 监控Web Service的SOAP消息 223
5.10 运行本章的例子 225
5.11 小结 225
第6章 基于BEA AquaLogic Service Bus的SOA架构的整合应用详解 227
6.1 基于BEA AquaLogic Service Bus构建SOA架构的基本原理 227
6.1.1 企业服务总线(ESB) 227
6.1.2 ESB的标准 228
6.1.3 基于BEA AquaLogic Service Bus构建SOA架构的整合应用的基本原理 228
6.2.1 安装AquaLogic Service Bus 229
6.2 基于AquaLogic Service Bus构建SOA架构的服务集成 229
6.2.2 实现基于Service Bus的SOA架构 231
6.2.3 创建WebLogic Service Bus项目Project 232
6.2.4 导入WSDL资源文件 234
6.2.5 创建代理服务(Proxy Service) 235
6.2.6 创建业务服务(Business Service) 239
6.2.7 将代理服务指向业务服务 242
6.3 基于SOA架构的整合应用 245
6.4 运行本章的例子 246
6.5 小结 247
第7章 基于Websphere RAD的Session Bean+Entity Bean+Web Service编程详解 249
7.1 安装RAD和DB2 249
7.2 数据库设计 250
7.3 用RAD实现Session Bean、Entity Bean和Web Service开发的基本原理和过程 252
7.3.1 RAD的工作环境 252
7.3.2 RAD开发EJB和Web Service的基本原理和过程 253
7.4 在RAD上创建EJB Project 255
7.5 在RAD中创建Enterprise Application Project 256
7.6 在RAD中创建CMP Entity Bean 257
7.6.1 在RAD中创建CMP Entity Bean 257
7.6.2 创建CMP Entity Bean的字段 259
7.6.3 RAD自动生成的CMP Entity Bean 260
7.6.4 RAD自动生成的CMP主键类 263
7.7 在RAD中建立CMP与数据库表之间的映射关系 265
7.7.1 在RAD中创建meet-In-the-Middle的Mapping关系 265
7.7.2 在CMP和数据库表间建立映射关系 268
7.8.1 创建新的CMP的ejbCreate方法 269
7.8 创建新的CMP的ejbCreate方法 269
7.8.2 创建ejbCreate方法输入参数的DTO类 270
7.8.3 将ejbCreate方法提升到本地Home接口 271
7.9 创建新的CMP的finder方法 272
7.10 在RAD中创建Session Bean 276
7.11 在RAD中实现Session Bean和CMP的集成 278
7.11.1 创建Session Bean调用CMP的引用(Reference) 278
7.11.2 创建Session Bean对CMP调用的lookup方法 280
7.11.3 实现Session Bean和CMP的集成 281
7.11.4 将Session Bean方法提升到Remote Interface 286
7.12 在RAD中加入应用服务器Server 287
7.12.1 将Enterprise Application Project加入Server 289
7.12.2 运行服务器Server和打开Admin Console 290
7.13 创建数据源和在CMP中配置数据源 291
7.13.1 创建安全机制 291
7.13.2 创建JDBC 293
7.13.3 创建JDBC驱动程序Driver的路径变量 295
7.13.4 创建数据源 296
7.13.6 配置CMP指向数据源的JNDI名 298
7.13.5 测试数据源连接 298
7.14 在RAD上创建基于Session Bean的Web Service 299
7.15 RAD生成的WSDL 305
7.16 Struts和Web Service集成 310
7.17 运行和调用Web Service 312
7.18 运行本章的例子 313
7.19 小结 315
8.1 基于企业服务总线SIBus构建SOA架构的基本原理 317
8.1.1 网上书店系统业务需求 317
第8章 基于IBM SIBus服务总线的SOA架构的网上书店系统实战详解 317
8.1.2 网上书店系统SOA实施 319
8.1.3 基于企业服务总线SIBus的网上书店SOA架构 320
8.2 创建网上书店系统的DB2数据库 321
8.2.1 创建数据库的脚本 321
8.2.2 数据库的ERWin数据库图 323
8.2.3 在DB2上创建数据库表 324
8.3 网上书店组件设计架构 326
8.4.1 注册系统业务和时序图 328
8.4 网上书店的业务和时序图 328
8.4.2 登录系统业务和时序图 331
8.4.3 用户查询系统业务和时序图 335
8.4.4 用户账户管理系统业务和时序图 336
8.4.5 图书管理系统业务和时序图 339
8.4.6 图书查询系统业务和时序图 342
8.4.7 购物车业务和时序图 343
8.5 在Websphere RAD上创建Entity Bean CMP、Session Bean和Web Service 351
8.5.1 在RAD上创建Entity Bean CMP 351
8.5.2 在RAD上创建Session Bean 355
8.5.3 在RAD上将Session Bean发布为Web Service 356
8.6 SIBus服务总线的基本原理 357
8.7 创建基于Websphere 6.0 SIBus服务总线的SOA架构的服务集成系统 359
8.7.1 创建SDO库 359
8.7.2 创建SIBus Web服务资源适配器 361
8.7.3 安装和配置端点监听器 361
8.7.4 创建服务总线 365
8.7.5 创建总线成员 367
8.7.6 创建总线目标 369
8.7.7 创建出站服务 372
8.7.8 创建默认转发路由路径 377
8.7.9 创建入站服务 378
8.7.10 发布入站服务 381
8.8 在Eclipse3.1.2上创建相应的调用SOA Web Service的Struts客户端类 384
8.8.1 复制入站服务的WSDL到相应的Eclipse目录下 384
8.8.2 创建相应的Ant Build脚本生成相应的Web Service客户端程序 385
8.8.3 客户端和SOA Web Service的集成 387
8.8.4 创建相应的Struts Action Bean类 391
8.8.5 创建相应的JSP 392
8.9 运行本章的例子 392
8.10 小结 393
附录A 创建页面过滤器(Filter) 395
A.1 页面过滤器(Filter)简介 395
A.2 如何实现页面过滤器(Filter) 395
附录B 关于Struts处理中文的问题 399
附录C 在RAD上创建基于Java Bean的Web Service 401