说起EJB开发工具中的豪杰,估计大家都会一致认为非JBuilder莫属,事实上我也这么认为。但是最近发现MyEclipse也不错。虽然没有像JB那样强大的“EJB Desiner视图”支持,但是借助XDoclet的多才多艺与灵活高效,也使得MyEclipse在JB面前毫不逊色。
想必阅读这个文章的朋友都已经具备丰富的开发经验,有自己动手、发现、解决问题的能力,所以Eclipse和MyEclipse的安装配置等细节我就不提了,让我们从MyEclipse下的Weblogic配置开始吧。看图作文:
(图1:Weblogic配置)
根据自己的实际情况配置上图的诸多参数,最后别忘了点击“Apply”和“OK”按钮,后面的类似操作也都别忘了。
(图2:新建一个EJB工程)
选择一个“J2EE – EJB Project”再Next。
(图3:新建一个EJB工程续)
注意:因为目前的Xdoclet版本只支持J2EE 1.3,所以为了可以利用Xdoclet来自动生成EJB各接口的代码和配置描述文件,这里应该选择J2EE 1.3 规范级别。
(图4:新建一个EJB工程完毕)
工程创建好了,可以看到初始的目录结构。
(图5:新建一个SessionBean Module)
开始创建我们的第一个SessionBean吧。“J2EE – EJB – Session Bean”,就这么简单。
(图6:创建期参数)
这个图片上红框表示的都是需要特别注意的地方,讲解如下:
1. 为适应Xdoclet的惯用法,EJB 组件的Bean类所在的包名应该以“.ejb”结尾,Bean类名应该以“Bean”或“EJB”结尾,这里我用的是“Bean”。
2. 如果这个Bean类不经扩展而直接使用,那么就应该实现一个“ejbCreate”方法。如果扩展后再使用的话,那么可以放到子类里面再实现。
(图7:SessionBean创建完毕)
初始的SessionBean代码创建好了,左边“Package Explorer”里可以看到当前的目录结构,右边的代码窗口里面可以看到Xdoclet自动生成的代码,里面有一些为进一步生成各种接口代码以及部署描述文档所用的Xdoclet标记,这里的标记很浅显,大家顾名思义一看就明白了,如果要改变部署后的JNDI名称以符合项目的具体规约要求,那么可以在图中红框标示的地方修改。
(图8:开始Xdoclet配置)
OK,现在开始最重要也最复杂的一步:Xdoclet配置。实际上Jbuilder的代码自动生成的幕后功臣也是Xdoclet,只不过Borland把它封装得严严实实,对于开发者来说就透明化了,这样做的好处是傻瓜化,降低了配置的难度,坏处很明显――损失了Xdoclet所著称的灵活性。
MyEclipse提供了许多标准的Xdoclet模板,我们直接拿来再根据实际情况自定义屈指可数的几个参数就可以使用了。
(图9:)
添加一个“Standard EJB”配置
(图10:Remove不需要的项目)
把我们当前工程中用不到的东西通通删掉,例如dao,dataobject,entitybmp,entitycmp,entitypk,valueobject,utilobject。得到图12所示的配置。
(图11:)
(图12:)
添加一个weblogic的部署描述选项,接着还要根据实际需要配置它。
(图13:)
配置Createtables,设置为AlterOrCreate,以便以后加入其它EJB组件时共享一个部署描述文件。
(图14:)
配置destDir,就是weblogic-ejb-jar.xml文件所在的目录。
(图15:)
配置Version,根据实际的weblogic版本去两个版本号即可,我用的版本是811,这里设为8.1。
(图16:)
选择使用动态Xdoclet配置文件还是静态Xdoclet配置文件,这里使用缺省的“动态”方式即可。
(图17:)
OK,Xdoclet配置好之后就可以根据它的配置文件批量生成我们所期望的代码和文档了。
(图18:)
Xdoclet执行过程。
(图19:)
Finished,看看红色选框里的文件,怎么样?果然不负众望吧?这里包括远程接口、本地接口、远程Home接口、本地Home接口、ejb-jar.xml、weblogic-ejb-jar.xml等文件。
(图20:)
这里是远程接口。看图中的高亮部分,顾名思义,用你自己的商务方法替换Xdoclet模板生成的示例商务方法。
(图21:)
这里是Bean类。同样是将示例方法替换成实际的商务方法。
(图22:)
代码都写好了,文件也都整理好了,嗯,该部署了。
(图23:)
部署过程很简单。看图,在“Project”选项中选择我们的“Hello”工程,再点击“Add”按钮添加一个部署方案。
(图24:)
部署到在文章初始就配置好的Weblogic8服务器,使用jar包方式。
(图25:)
配置完毕,该启动Weblogic看看效果了。 :)btw,整理使用的是离线部署(或者叫做“冷部署”)方式,也就是说在部署过程中Weblogic没有启动,这时候如果EJB组件包含部署期可发现的错误那么在这一阶段将不能得到报告,当然我们也可以使用在线部署(“热部署”?)方式以即时得到部署期可能的异常,easy,自己尝试吧。
(图26:)
部署好之后该干什么呢?看着屏幕发呆?呵呵。。还是先写个Client测试一下你的EJB组件是不是能够正常运行吧。如图,包名和类名除符合基本的JAVA规范之外都没有硬性的规定,只是习惯上将类名的后缀设为“TestClient”。
(图27:)
因为要用到Weblogic的初始上下文工厂(WLInitialContextFactory),所以我们应该导入Weblogic的函数库,就是WL_HOME/server/lib/weblogic.jar了。当然这一步也未必就要放在这里做,反正在测试程序运行之前就可以。
(图28:)
该编写我们的测试客户端的实际代码了,看图,就那么二三十行经典代码,很简单吧?
(图29:)
叫上Weblogic,一起开动咯~
(图30:)
Weblogic启动成功,启动过程中会自动载入我们刚才冷部署的EJB组件,这次没有报告任何异常,说明我们的EJB组件是正确无误的。
(图31:)
执行我们的测试客户端,得到预期的输出。
(图32:)
然后观察Weblogic的控制台,同样也是我们所期望的反馈,yeah,收工,吃饭去了。
有问题请大家回帖共同探讨。
希望还有机会下次跟大家讨论EntityBean的开发,
再下次是MessageDrivenBean,以及综合实例。:)
参考文献:《MyEclipse Application Developer Guide》。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=310359