Java的出现,实现了跨操作系统平台的程序开发,以Java为基础的J2EE技术已经成为因特网服务技术的主流。然而,以J2EE为基础的SOA架构技术必将成为因特网服务技术的热点。笔者希望通过本书帮助广大Java开发人员快速从以技术为导向的编程转到以服务为导向的编程,以适应这个新到来的SOA时代。\r\n 本书通过实例,由浅入深、全方位地介绍了基于Eclipse和Lomboz插件实现Struts的Web应用开发,基于Eclipse和Lomboz插件实现EJB的Session Bean的开发及实现Struts + Session Bean的整合应用编程,基于Eclipse和Lomboz插件实现EJB的CMP的开发(包括创建复合主键和新的finder方法,以及实现Struts + Session Bean + CMP的整合应用编程),基于Eclipse和Axis实现Web Service的开发及实现Struts + Session Bean + CMP +Web Service的整合应用编程,基于IBM Webshpere RAD的EJB Session Bean、CMP和Web Service的应用开发,并且详细介绍了基于BEA AquaLogic服务总线实现SOA架构的整合应用开发。\r\n 最后通过一个网上书店的实例详细介绍了如何基于IBM SIBus 服务总线实现SOA架构的Struts、EJB和Web Service的J2EE整合应用开发。\r\n 本书适合于广大的Java开发人员,特别是那些希望尽快掌握实际项目所需要的开发经验的人员,也适合于相关专业的广大学生和教师。
第1章 SOA架构概述及准备工作 \r\n 1.1 SOA的核心实质 \r\n 1.2 基于SOA架构整合应用的技术组成 \r\n 1.3 安装和配置BEAWebLogic 9.1 \r\n 1.4 安装Eclipse 3.1.2和Lomboz 3.1.0插件 \r\n 1.5 创建Lomboz J2EE Project和Web Module \r\n 1.6 配置环境变量 \r\n 1.7 改写webModule目录下面的index.jsp \r\n 1.8 Lomboz J2EE View \r\n 1.9 运行本章的例子 \r\n 1.10 小结 \r\n第2章 基于Eclipse的Struts编程详解 \r\n 2.1 Struts的MVC架构的基本原理 \r\n 2.2 在Eclipse 3.1.2上装载Struts库 \r\n 2.3 ActionServlet类 \r\n 2.4 Form Bean类 \r\n 2.5 Action Bean类 \r\n 2.6 配置Struts-config.xml \r\n 2.7 创建基于页面输入校验的Struts Validator \r\n 2.8 Struts Validator的实例详解 \r\n 2.9 Struts的标签库 \r\n 2.10 使用JSP开发实例 \r\n 2.11 创建Struts的Model \r\n 2.12 运行本章的例子 \r\n 2.13 小结 \r\n第3章 基于Eclipse的Struts + SessionBean编程详解 \r\n 3.1 Stateless Session Bean实现分布式应用的基本原理 \r\n 3.2 用Eclipse和Lomboz实现Session Bean开发的基本原理和过程 \r\n 3.3 通过Lomboz 创建EJB Module \r\n 3.4 在Eclipse上创建EJB Session Bean \r\n 3.5 通过Lomboz自动生成Session Bean的接口类 \r\n 3.6 实现Struts和EJB Session的集成 \r\n 3.7 运行本章的例子 \r\n 3.8 小结 \r\n第4章 基于Eclipse的Struts+Session Bean+Entity Bean编程详解 \r\n 4.1 CMP实现数据层操作 \r\n 4.2 用Eclipse和Lomboz实现CMP开发的基本原理和过程 \r\n 4.3 数据库设计 \r\n 4.4 在WebLogic上创建Data Source数据源 \r\n 4.5 在Eclipse Lomboz上创建EJB CMP \r\n 4.6 在Eclipse上将EJB Entity Bean加入EJB Module \r\n 4.7 在Eclipse上自动生成EJB CMP接口类 \r\n 4.8 创建Entity Bean CMP的复合主键类 \r\n 4.9 配置CMP数据源 \r\n 4.10 实现Session Bean和CMP的集成 \r\n 4.11 Struts1.2.8+Session Bean+Entity Bean的实例 \r\n 4.12 小结 \r\n第5章 基于Eclipse+Axis的Web Service、EJB、Struts的整合编程详解 \r\n 5.1 Web Service的基本概念 \r\n 5.2 Web Service实现分布式服务的基本原理 \r\n 5.3 基于Eclipse+Axis开发Web Service的环境配置 \r\n 5.4 基于Eclipse和Axis创建Java Bean的Web Service \r\n 5.5 基于Eclipse和Axis创建无状态会话Bean的Web Service \r\n 5.6 基于Eclipse和Axis创建WSDL \r\n 5.7 基于WSDL创建客户端的Java代码 \r\n 5.8 Struts和Web Service的集成 \r\n 5.9 创建Axis的TCP Monitor监控Web Service的运行 \r\n 5.10 运行本章的例子 \r\n 5.11 小结 \r\n第6章 基于BEA AquaLogic ServiceBus的SOA架构的整合应用详解 \r\n 6.1 基于BEA AquaLogic Service Bus构建SOA架构的基本原理 \r\n 6.2 基于AquaLogic Service Bus构建 SOA架构的服务集成 \r\n 6.3 基于SOA架构的整合应用 \r\n 6.4 运行本章的例子 \r\n 6.5 小结 \r\n第7章 基于Websphere RAD的Session Bean+Entity Bean+Web Service编程详解 \r\n 7.1 安装RAD和DB2 \r\n 7.2 数据库设计 \r\n 7.3 用RAD实现Session Bean、Entity Bean和Web Service开发的基本原理和过程 \r\n 7.4 在RAD上创建EJB Project \r\n 7.5 在RAD中创建Enterprise Application Project \r\n 7.6 在RAD中创建CMP Entity Bean \r\n 7.7 在RAD中建立CMP与数据库表之间的映射关系 \r\n 7.8 创建新的CMP的ejbCreate方法 \r\n 7.9 创建新的CMP的finder方法 \r\n 7.10 在RAD中创建Session Bean \r\n 7.11 在RAD中实现Session Bean和CMP的集成 \r\n 7.12 在RAD中加入应用服务器Server \r\n 7.13 创建数据源和在CMP中配置数据源 \r\n 7.14 在RAD上创建基于Session Bean的Web Service \r\n 7.15 RAD生成的WSDL \r\n 7.16 Struts和Web Service集成 \r\n 7.17 运行和调用Web Service \r\n 7.18 运行本章的例子 \r\n 7.19 小结 \r\n第8章 基于IBM SIBus服务总线的SOA架构的网上书店系统实战详解 \r\n 8.1 基于企业服务总线SIBus构建SOA架构的基本原理 \r\n 8.2 创建网上书店系统的DB2数据库 \r\n 8.3 网上书店组件设计架构 \r\n 8.4 网上书店的业务和时序图 \r\n 8.5 在Websphere RAD上创建Entity Bean CMP、Session Bean和Web Service \r\n 8.6 SIBus服务总线的基本原理 \r\n 8.7 创建基于Websphere 6.0 SIBus服务总线的SOA架构的服务集成系统 \r\n 8.8 在Eclipse3.1.2上创建相应的调用SOA Web Service的Struts客户端类 \r\n 8.9 运行本章的例子 \r\n 8.10 小结 \r\n附录A 创建页面过滤器(Filter) \r\n A.1 页面过滤器(Filter)简介 \r\n A.2 如何实现页面过滤器(Filter) \r\n附录B 关于Struts处理中文的问题 \r\n附录C 在RAD上创建基于Java Bean的Web Service
梁爱虎,IBM高级IT专家,博士。
2000年2月—2000年7月在美国硅谷Netpace公司任软件工程师,从事基于J2EE的网上知识竞赛的项目设计开发。
2000年7月—2000年12月在美国硅谷AngeIEngineers公司任高级软件工程师,从事基于J2EE的数据挖掘Eemine项目的的设计开发。
2001年1月—2001年8月在硅谷Octasoft公司高级软件工程师,从事基于J2EE的网上电子银行系统项目的设计开发。
2004年12月至今在中国IBM ISC公司任高级IT专家(Advisory IT Specialist)。
本书的缘起
全球信息资源整合的时代已经来临,电子商务B2B已经谈了很多年了,什么是真正的电子商务B2B,难道仅仅是一些厂商将自己的产品发布到一个网站上让买家浏览就是电子商务B2B了?
真正的电子商务B2B至少应该包括物流、资金流和库存的信息流控制,应该是各种信息服务资源的整合平台。比如说,当一个买家在某一个电子商务平台决定购买一个产品时,此电子商务平台将调用买家的资金账户管理服务系统,冻结相应的资金;此电子商务平台同时调用卖家的库存管理服务系统,检查是否有足够的存货;如果资金和存货都达到要求,此电子商务平台将调用一家物流配送公司的物流管理服务系统把卖家的产品送到买家。
电子商务平台不需要所有者亲自开发买家的资金账户管理服务系统、卖家的库存管理服务系统,以及物流配送公司的物流管理服务系统,只需要将这些管理服务系统以插件的方式加入到这个电子商务整合平台即可。电子商务整合平台可以对相应的服务进行安全控制和服务状态监控等,要实现这样的整合平台技术,就需要SOA的架构技术。
SOA是目前最流行的热门话题。SOA(Service Oriented Architecture)的架构思想,即以服务为导向的软件开发思想几年前就出现了。SOA的本质需求是什么?为什么需要SOA?作者去年参与了基于J2EE和SOA架构的美国pepboys汽车修理和加油连锁店POS系统项目的设计开发,感觉大量的软件开发和设计人员所理解的SOA就是Web Service,也就是SOAP。如果单纯从提供分布式服务的角度来看,CORBA和J2EE的EJB就可以满足服务需求,为什么一定需要Web Service呢?
决定一种新的技术是否有前途,关键是看它是否能够满足市场的需求。这样就需要开发者首先知道目前最有潜力的市场需求是各种跨平台的软件服务的整合。
要实现跨平台的软件服务的整合,就必须解放软件服务的传输协议的限制,Web Service必然成为首选。然而SOA不仅仅要提供一种服务,其本质是要提供一个整合和监控各种松散耦合(或完全解耦)服务的整合平台。
目前各个大公司如IBM等都在积极推出自己的SOA的服务整合平台技术,IBM的Websphere 6.0所推出的Websphere 6.0 SIBus服务总线就是一个非常好的SOA技术平台。
Java的出现,实现了跨操作系统平台的程序开发,以Java为基础的J2EE技术已经成为因特网服务技术的主流。接下来,以J2EE为基础的SOA架构技术必将很快成为下一个因特网服务技术的主流,这就是本书“基于SOA架构的Struts、EJB和Web Service的J2EE整合应用开发”的缘起和由来。
本书的组织架构和主要内容
第1章 SOA架构概述及准备工作
首先介绍了SOA的核心实质,以及基于SOA架构整合应用的技术组成。Eclipse和RAD已经成为目前主流的Java集成开发工具(IDE)。事实上RAD就是Eclipse的升级版。Eclipse的不需安装,直接复制到相应目录即可执行,以及以插件方式就可增加新功能的方式,越来越为广大Java开发人员所喜爱。Eclipse+Lomboz插件一直是开发J2EE EJB等的利器。Eclipse 3.0以上版本+Lomboz插件来开发J2EE的JSP或EJB一直有各种各样的问题,严重影响了广大的Java开发人员的效率。作者解决了这些问题,并将Eclipse 3.1.2+Lomboz完全支持JSP、Session Bean和Entity Bean的可运行版本借本书公布出来,希望能对广大的Java开发人员有所帮助。
此外,本章一步一步详细介绍了安装BEA WebLogic 9.1和Eclipse 3.1.2+Lomboz插件的过程、如何创建Web Module,以及如何检验安装是否正确。
第2章 基于Eclipse的Struts编程详解
以易懂的实例详细介绍了如何在Eclipse 3.1.2上创建基于Struts 1.28的MVC Web应用,包括创建和配置Controller、Form Bean、Action Bean、Struts Validator,以及应用Struts的html taglibs、bean taglibs、logic tag libs创建JSP。
第3章 基于Eclipse的Struts + Session Bean编程详解
以易懂的实例介绍了用Eclipse 3.1.2+Lomboz插件创建EJB Session Bean,以及创建和实现Struts对EJB Session Bean的调用。
第4章 基于Eclipse的Struts + Session Bean + Entity Bean编程详解
以易懂的实例介绍了用Eclipse 3.1.2+Lomboz插件创建EJB Entity Bean CMP,创建CMP的复合主键类,创建新的finder方法,在WebLogics 9.1上配置数据源,以及创建和实现Session Bean对Entity Bean CMP的调用。本章的目的在于介绍创建和实现基于Eclipse 3.1.2和WebLogic 9.1的从前台到后台的Struts+Session Bean+CMP的整合编程。
第5章 基于Eclipse + Axis的Web Service、EJB、Struts的整合编程详解
首先介绍了Web Service的出现原因在于实现业务接口层和业务实现层的分离,以及服务接口和调用的标准化;然后详细介绍了Web Service实现分布式服务的基本原理。
接着以具体的实例介绍了基于Eclipse+Lomboz来创建Java Bean的Web Service,进一步介绍了基于Eclipse+Lomboz来创建无状态会话Bean的Web Service;又介绍了基于Eclispe和Axis创建WSDL,以及基于WSDL创建客户端的Java代码,作者提供了相应的脚本,读者只要进行简单的修改就可直接应用到实际的项目之中。
最后介绍了实现客户端和Web Service的集成,以及创建Axis的TCP Monitor来监控Web Service的运行。
第6章 基于BEA AquaLogic的SOA架构的整合应用详解
介绍了基于BEA AquaLogic Servcie Bus构建SOA架构的基本原理,结合具体的实例,详细介绍了基于服务总线创建构架SOA的服务集成的整个过程,最后介绍了基于SOA架构的整合应用的实现。
第7章 基于Websphere RAD Session Bean + Entity Bean + Web Service编程详解
目前IBM的Websphere服务器和BEA的WebLogic服务器是J2EE市场上两大主流企业级的应用服务器。上面章节的Eclipse+Lomboz可以完成除Websphere之外的所有应用服务器的J2EE开发支持。
RAD是WSAD的升级版,也是基于Eclipse架构的专门支持Websphere服务器的Java集成开发环境(IDE),本章以详细实例介绍了在RAD中创建Session Bean和CMP,创建新的finder方法,在RAD上创建相应的数据源,在RAD上将Session Bean发布成Web Service,以及实现整合应用编程。
第8章 基于IBM SIBus服务总线的SOA架构的网上书店系统实战详解
详细介绍了创建基于Websphere 6.0 SIBus服务总线的SOA架构的企业服务系统。以一个网上书店系统的实例,详细介绍了SOA的实施过程。完成了在Websphere 6.0上建立SOA的网上书店服务体系,然后在WebLogic 9.1中应用Struts调用SOA Web Service客户端,实现基于SOA架构的Struts、EJB和Web Service的J2EE跨服务器平台的整合应用开发。
本书的一个最大特点就是对所有的概念和原理的描述(如Struts、Session Bean、CMP、Web Service、SOA等)都是从市场需求的角度、开发人员的角度出发,以笔者实际工作的心得来讲述的,从而抓住了这些技术的根本。这些技术本来就是应市场的需求而生的,其目的在于使开发人员更加专注于服务和业务本身。如果看不到这两点,就不可能了解这些技术的本质,所学的东西在实际项目中无法发挥作用。
本书的另一个特点就是每一个章节都给出了完整的工作环境(不仅仅是单纯的源程序),读者只需要在打开Eclipse或者RAD时将路径指向相应的工作环境即可,不需要安装和编辑,即可运行和调试相应的例子,得到最佳的学习效果及实际项目真正需要掌握的技术经验。
本书的读者对象及如何学习本书
前一段时间作者所在部门要招收一些在校的实习生,作者面试了一些知名院校的名列前茅的计算机专业硕士研究生,深深地感觉到他们所掌握的计算机技术跟目前实际项目所需的技术要求相差太大,如果有一本很好的和实际项目相结合的技术书来指导他们,必然能够帮助他们尽快掌握实际项目中真正所需要的经验,这也是本书诞生的重要原因之一。
要学好一门技术,首先要知道为什么要学这门技术,这门技术为什么出现,这门技术所满足的市场需求是什么。J2EE主要目的就是要将广大的软件设计和开发人员从软件技术本身解放出来,如从安全控制、程序流程监控等之中解放出来,让开发人员花更多的时间去直接关注如何实现业务需求本身。
以EJB学习为例,作者认为学习人员不要花太多的时间去琢磨如何写Remote Interfa
无封面