使用JBOSS和ECLIPSE构建J2EE应用程序教程
前言.
翻译:raxy
本教程是关于使用Eclipse作为集成开发环境,JBOSS作为应用程序服务器开发J2EE组件的。本教程循序渐进的介绍了J2EE组件的开发, 从安装Eclipse, JBOSS和Lomboz开始. Lomboz使用了Xdoclet (Attribute Oriented Programming)来进行J2EE组件快速开发. 重要的是, 教程中所使用的工具都可以免费下载,那么就没有什么东西可以阻碍你了!
Eclipse是一款优秀的IDE,拥有很多特性比如说重构和调试. JBOSS是集成在Eclipse中使用JBOSS插件. Lomboz 是用于开发J2EE组件的另一个插件, 它提供了构造bean,方法,bean部署和测试客户端等的向导。JBOSS是一个应用程序服务器,它拥有方便的内建组件,如Hypersonic数据库和网络引擎Jetty. 这些工具包含了J2EE环境中的所有关键组件可以帮助初学者学习怎样开发J2EE应用程序. 在获得了一些技巧和信心之后,初学者也可以去使用其他厂商提供的工具.
摆在J2EE开发者面前的一个问题是如何使他们的代码与J2EE部署的描述(descriptors)相同步. 在开发组件的过程中,开发者必须与部署描述保持同步, 这个冗长并且容易出错的工程被避免,取而代之的是更过的考虑应用程序的商业逻辑. Xdoclet通过解析了源文件来生成这些接口和帮助类来同步部署描述(deployment descriptors).这些文件生成自使用源代码及其JavaDoc标签提供的信息的模板. XDoclet允许开发者专注于每个组件中唯一的一个Java 源文件, 也就是说,专注于应用程序的商业逻辑,剩下的就交给Xdoclet完成了.
许多年来开发者都在寻找某种工具可以对开发和部署的过程加速,Xdoclet就是为此开发的.你会发现Xdoclet使开发和部署变得快速和简单.来看看Xdoclet, Eclipse和JBOSS组合的威力吧!
关于作者.
Glen McCallum.
Glen 于1990年加入TUSC.他在通讯产业软件开发领域拥有大量经验,其中包括C, C++, Perl和Java.除了在TUSC的工作外, Glen也致力于他认为酷的技术. 其中包括TCP/IP 网络, 安全, 加密, VPNs,数字图象抓取,蓝牙技术, PDAs and J2EE,全部都是基于Linux平台的. 他妻子和两个儿子完全就是 “纯粹的Linux”家属.
Vishal Sharma.
Vishal 1976 年出生于India.他学习的是机械工程, 于1998年毕业.在该领域工作了6个月之后, 他来到了Australia并获得了计算机科学的硕士学位. 自从2001年在RMIT Melbourne硕士毕业后他首先在Mcom Solutions担任软件工程师开发通讯协议. Vishal于2002年加入TUSC并从那开始做了很多不同的项目. 最近他在为通讯产业开发一个多层网络应用程序,其中使用的就是J2EE技术.
致谢.
我们想谢谢这些朋友: Rod Bower, Sebastian Bellofiore和Marcia Abbott, 感谢他们的支持和帮助, 当然还要感谢我们的同事谢谢他们的合作; Simon Shields, Andrew Hendry以及Ray Walford.
Vishal想感谢Glen McCallum在完成本教程过程中所提供的帮助,鼓励和支持.
简介.
阅读本教程的准备.
在你开始阅读本教程之前,你应该对Java, XML, J2EE和some exposure to SQL, JDBC概念, and Xdoclet (面向属性的编程)有一定的了解. 即使你对上面提到的技术都比较陌生也不要紧–那也只是在学习的时候多学点东西!
所有教程涉及到的例子都是在装有Sun Microsystem's JDK (j2sdk1.4.1_02)的RedHat Linux 8.0平台上使用Eclipse 2.1作为IDE, 及Lomboz 2.1_02 作为Eclipse的插件进行开发的. JBOSS-3.2.1则被用作应用程序服务器来部署应用程序. Jetty则是作为网络服务器,Hypersonic SQL作为数据库, 这两个工具都是集成在JBOSS中的.
本教程中使用的工具.
你将需要一定版本的Java开发包(JDK)或Java运行时环境(JRE) –至少是JDK 1.3以上. 还需要Eclipse 2.1作为集成开发环境(IDE)以及Eclipse的插件Lomboz 2.1_02并集成JBOSS.
JBOSS-3.2.1 作为应用程序服务器来部署应用程序,一同使用还有内嵌Jetty网络服务器以及上文提到的Hypersonic SQL数据库.
案例学习的预览.
在本教程中我们使用了一个类似于仓库的案例,而不是使用其他复杂的场景或是采用严格的数据库设计,因为我们的目标是学习如何使用新一代的面向属性的方法和这些工具来设计和开发不同的J2EE组件.
我们有一个叫做'MyStore'的数据库模式,它由5个表组成.
表Supplier记录了记录了供应商的信息,他们在收到了来自MyStore管理者的需求之后向MyStore销售不同的原料.
表Manager用于记录经营MyStore的管理者的信息,现在只有一个管理者.
表 Customer用于记录至少在MyStore买过一次东西的顾客的信息。
表Items用于记录仓库中有或没有的商品.
表StoreAccess记录所有在线使用MyStore的顾客,供应商和管理者的认证信息.
MyStore数据库如下图所示.
740)this.width=740" border=undefined为了从数据库中读取数据并进行商业操作, 我们将创建大量的J2EE组件包括会话(Session),实体(Entity)和消息驱动(Message-driven)的EJB组件网络客户端使用的Servlets和JSP.
下图是MyStore应用程序体系结构的概览.
740)this.width=740" border=undefined注意:在使用网络客户端的情形下, 一个请求通过Servlets/JSP (Java Server Pages) 使用RMI传递到beans. 无状态, 有状态以及Bean Managed Persistence (BMP) 实体Beans使用DAO从数据库中存取数据,DAO就是JDBC代码的封装, 同时委托容器管理永久性(CMP)的实体Beans不需要DAO,因为这个容器管理了Beans数据库之间的通讯, 这是一个强大的特性. 最后, Java客户端的请求是通过Java中间件技术(RMI, CORBA, Java Messaging)传到实体Beans的.
所有在教程中实现了的beans及其公共方法都列在下图中了. StoreAccessBean 是一个会话门面(façade,具体参看设计模式)bean, 在封装复杂的顾客, 管理者, 商品条目 and 供应商实体beans之间的商业逻辑的同时,它向表示层提供其接口.
740)this.width=740" border=undefinedMyStore客户,供应商和管理者使用StoreAccess无状态会话bean登陆到这个系统.一旦认证通过,他们会使用StoreAccess bean中不同的可用接口对MyStore仓库,管理者信息, 顾客信息以及供应商信息等信息发出请求。RequestItems和DeliverItems是消息驱动的Beans,它们监听来自JMS生产者(Producer)的消息并将这些消息传递到其他的beans.
现在让我们开始吧,在第一章中学习如何安装开发环境。
在保留http://raxy.blogbus.com原出处的情况下,欢迎转载!