用 WebSphere Studio Application Developer开发J2EE 应用程序
WebSphere Studio Application Developer是IBM最新的J2EE开发工具,它从不同开发者的视角对整个J2EE环境提供了广泛的支持。但正是因为它庞大的功能,相对于其他 IDE来说,开发者需要更多的时间用于熟练掌握。本文将介绍我的开发经验,希望广大的开发者能够快速上手,体会WSAD强大而新颖的集成环境。
Websphere开发者园地已经刊登了Sheldon Wosnick的 WSAD教程,您也可以浏览IBM红皮书或WSAD的帮助,但在实际开发中,以下原因使我感觉有必要对上述文章进行补充:
- 开发者往往将Websphere与DB2或Oracle结合使用,而Sheldon Wosnick只提供了文件型的InstantDB数据库作为范例。
- Sheldon没有介绍数据库表格映射到Entity Bean的步骤,而这一点是在实际应用中经常用到的。
- IBM红皮书和WSAD的帮助比较简略,且侧重于Web Service方面,没有使用过Visual Age for Java的用户可能不太习惯WSAD中的EJB开发方式。
因 此,我将借鉴各位IBM专家的成果,采用Step by Step的形式,介绍在WSAD中如何开发和测试一个简单的J2EE系统。本文侧重于IBM前后端产品的整合应用,包括Websphere Application Advanced Single Server 4.0 Edition和DB2 7.1 Edition,您可以从IBM的网站上下载这些产品的免费版本。与Sheldon教程相同的部分将不再重复,您可以参考他的文章。
|
一个完整的J2EE工程应包含Application client project、EJB project和Web project三种模块。确认自己处于J2EE View视图下,让我们从头创建一个工程:
- 单 击【File】/【New】/【Enterprise Application Project】,创建一个名为HelloWorld的工程(当然您也可以起自己喜欢的名字,我们文章中的各种名称都是可更换的)。在弹出的 【Enterprise Application Project Creation】窗口中输入各模块的名字,选择工程文件的目录,单击【Finish】即可创建。
- 展开J2EE View中的Enterprise Applications目录,双击HelloWorld工程,右侧编辑区出现application.xml窗口。选择底部的【Modules】选项卡,将显示该工程的组成模块,如图1所示。
图1 HelloWorld工程的组成模块
|
注 意到图1模块中的xey.jar文件了吗?这是我们创建的EJB Project,您可以在J2EE View的EJB Modules目录下发现所有的EJB项目。如您所知,EJB分为Session Bean和Entity Bean。下面,让我们分别添加两种Bean类型的文件。
2.1 创建Session Bean
- 在J2EE View窗口中右击鼠标,选择【New】/【Enterprise Bean】,弹出【Create EJB】窗口,如图2所示。
图2创建Session Bean - 如上图所示,填入EJB project、Bean type和package等信息。如果用户输入错误,窗口的抬头处会出现错误原因的说明。单击【Finish】按钮即可创建。
- 在J2EE View窗口中展开创建过的名为Tell的Session Bean,双击TellBean,编辑实体部分,如图3所示。
图3 编辑Session Bean - 如上图所示,加入getTellNo()方法,右击编辑区,选择【Save】,或直接按【Ctrl+S】保存。
- 和VAJ 一样,用户可以方便地将Session Bean中的方法提升到远程接口中。如图4所示,找到桌面左下角的Outline窗口(如果您移动或隐藏了该窗口,可以单击菜单栏的 【Perspective】/【Reset】恢复初始布局),右击getTellNo(String)方法,选择【Enterprise Bean】/【Promote to Remote Interface】即可。
图4 Outline窗口 - 在J2EE View窗口中双击Tell文件,可以看到这个远程接口中自动添加了getTellNo()方法的定义,如图5所示。
图5 Tell.java
至于Session Bean的其他要点,Sheldon的 WSAD教程中已有详细的介绍,这里就不再赘述了。
2.2 创建Entity Bean
如 何创建Entity Bean?通常由两种方法:自顶向下映射(top-down mapping)和由底向上映射(bottom-up)方式。前者是在Entity Bean的设计中为数据库建模,而后者导入已有的数据库表格并与Entity Bean匹配。在实际的开发中,我们需要将原有的系统移植到J2EE体系,往往采用后者来利用已有的数据库结构。Sheldon的 WSAD教程介绍了自顶向下映射的方式,而本文将就由底向上映射的解决方案作一阐述。具体步骤如下:
- 在DB2数据库中,我们已经有了一个简单的数据表Teacher。它位于HELLO 库中,结构如表1所示:
Column name Datatype Primary Key ID Integer Yes NAME VARCHAR No - 建 立名为Teacher的Entity Bean(当然可以是其他的名字),在【Create EJB】窗口的【Add persistence fields to the bean】区域中,单击【Add】按钮,根据Teacher表的结构添加字段。请您注意,要将id指定为key字段,如图6所示。
图6 建立Teacher表的Entity Bean - 单击【Perspective】/【Open】/【Other】,在弹出的窗口中选择"Data",切换至Data视图。
- 鼠标右击左方的DBExplorer窗口(如果它被隐藏了,可以单击【Perspective】/【Show View】/【Other】来选择激活),选择【New Connection】,弹出创建数据库连接窗口,如图7所示。
图7 数据库连接窗口 - 在上图中填入数据库的名称、版本、用户名、密码和JDBC驱动程序位置等信息,单击【Finish】按钮建立连接。展开的数据库信息如图8所示。
图8 数据库信息 - 右击ADMINISTRATOR.TEACHER表,选择【Import to Folder】,在弹出的窗口中选择目录,将Schema信息导入到{项目}/ejbModule/META-INF/Schema目录下。
- 切换至J2EE视图,在J2EE View窗口中,右击我们创建的EJB项目,选择【Generate】/【EJB to RDB Mapping】,在弹出的窗口中选择【Meet In The Middle】方式,单击【Finish】建立映射。
- 在左方J2EE View窗口的底部,您可以点击Navigator选项卡,切换至Navigator窗口方式。在项目的META-INF目录中找到Map.mapxmi项,双击打开映射编辑器,如图9所示。
图9 映射编辑器 - 先在左边的EJBs窗口中点选名为Teacher的Entity Bean,再在右边的Tables窗口中右击同名的表格,选择【Match by Name】,建立映射,结果如图10所示。
图10建立映射 - 单 击【Perspective】/【Open】/【Server】,切换至Server视图。在左下方的Server Configuration窗口中双击Websphere Administrative Domain,打开右方的Websphere Administrative Domain编辑窗口,如图11所示。
图11 Websphere Administrative Domain编辑窗口 - 在JDBC driver list区域中选择Db2JdbcDriver驱动。
注 意:如果您使用的是低版本的DB2,务必要升级到JDBC2.0驱动,才能利用 COM.ibm.db2.jdbc.DB2ConnectionPoolDataSource连接缓冲池驱动。方法是运行{DB2根目录} /java12/usejdbc2.bat文件,升级db2java.zip包。 - 在Data Source defined in the JDBC driver selected above区域中,单击【Add】按钮,添加Data source,如图12所示。按【Ctrl+S】保存设置。
图12添加Data source
推荐的JNDI name是以jdbc开头的,当然您也可以自由填写。 - 切 换至J2EE视图,打开J2EE View窗口,右击EJB项目,选择【Open with】/【EJB Extension Editor】,切换到【Bindings】选项卡,展开EJB项目,选择我们刚才建立的名为Teacher的Entity Bean,在右方的区域内输入Bean的JNDI名称、刚才我们所建立数据源的JNDI名、数据库用户名和密码,按【Ctrl+S】保存,如图13所示。
图13 EJB Extenxion Editor
注意:如果Bean的JNDI名称为空,测试时Websphere v4.0 Test Environment自动绑定为BeanName+Home的格式。 - 在J2EE View窗口中右击EJB项目,选择【Generate】/【Deploy and RMIC Code】,生成部署代码。
- 右击项目,选择【Run on Server】,在Websphere v4.0 Test Environment中进行测试。EJB Test Client界面如图14所示。
图14 EJB Test Client
具体的测试方法就不再详细介绍了,请您参照Sheldon的 WSAD教程和WSAD本身的帮助。
Tips: WSAD Trial Edition for Win2000的帮助似乎有点问题。如果您打不开帮助,单击菜单栏的【Window】/【Perferences】,选择help项,单击 【Restore Defaults】按钮,再单击【Ok】按钮就会恢复正常。
|
3. 创建Web project和Application client project
Web project 和Application client project的开发相对较易,Sheldon的 WSAD教程也有详尽的描述。本文所附zip包里提供了一个Demo Servlet,它使用Websphere类库中的LotusXSL工具,将XML流转为HTML输出,您可以直接运行。
|
4.在Websphere Application Server v4.0 AES中发布
Sheldon的第二篇 WSAD教程已 经给出了发布的步骤,这里就不再重复。但在实际应用中,我发现4.0.1版的AESS在部署Web module时会出现错误,症状是安装外挂的IBM HTTP Server侦听不到Web模块的目录,造成无法访问Servlet和静态文件。但Advanced Edition没有上述问题。
解决方法是:修改{websphere}config目录下的plugin-cfg.xml,在 层里加入web moudule的上下文路径context path,如路径为/own,加入,重新启动即可。
下载: HelloWorld.ear
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/374079/viewspace-130750/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/374079/viewspace-130750/