【IT168 技术文档】
WebLogic Workshop是一种通用的框架,你可以用它开发出多种类型的应用,包括Web 应用程序、Web服务、portal以及业务流程。在这篇文章中,我将描述如何用 WebLogic Workshop编写和部署Enterprise JavaBeans (EJB)。
EJBGen
我从用户那里听到的有关J2EE的一致的抱怨之一就是处理XML部署描述符时的困难性。尽管你可以使用高级的 XML 编辑器,这种编辑器会确保你的文档有效,但是这种方法对于J2EE来说通常还不够,这里有两个原因:
1.用于J2EE描述符的DTD不够丰富,还不足以描述所有被允许的类型和值(这在J2EE 1.4中将会有所改变,J2EE 1.4将托管schema的使用)。
2.即使你的XML文件可能各自都是有效的,但是这些文件之间仍然需要保持一致。
于是,BEA开始开发一种称为为EJBGen的工具,它与WebLogic Server 7一起发布。
构建EJBGen 的想法来自于一项观察的结果,这项观察发现许多包含在部署描述符中的信息实际上实际上与Java源代码中的元素是紧密相连的。可以采取什么措施来使得开发者能够轻松地指定Java 源代码中的这种信息,然后基于这些值来生成XML描述符呢?EJBGen 就是BEA公司对于该问题的解决之道。
我们将在WebLogic Workshop 8.1中一起发布一种新的EJBGen开发模型中的组件:EJBGen Workshop扩展。本文概要地讲述这个扩展的一些主要特性。
创建EJB
Enterprise Java Bean通常用下面的方式创建:
从头开始,或者通过复制修改一个现有的EJB。
从一个现有的jar 文件开始。
从一个数据库schema开始。
我们将依次考察这3种方法,但是现在还是让我们从创建一个EJB项目开始。在你的主窗口中选择 "File / New",在右侧单击"EJB Project",然后为你的项目选择一个名称。 
你的新项目现在作为应用的一部分出现在左侧的树中。要从头创建一个EJB,你需要在EJB项目上单击鼠标右键并选择你想创建的EJB的类型,让我们从一个Stateless Session Bean开始。
编辑器面板向你显示了你的EJB的设计视图。通过两种不同的方式可以看到所有的EJB:
设计视图向你展示你的EJB的一个概念视图:业务方法、CMP 字段,finders、home/select 方法以及关系。这是添加EJB组件时优先考虑的地方。
源代码视图向你展示你的bean的完整源代码。无论你什么时候需要写Java代码,这就是你将使用的视图。
这时,设计视图是空的,因为我们什么都没有创建,但是如果你看一看源代码视图,你就会注意到Workshop 创建了一些缺省属性,所以现在就可以创建和部署你的EJB了。如果你想试一试,只需简单地在树中的项目上单击鼠标右键并选择"Build";Workshop将对你的文件运行EJBGen,对其进行编译,然后将它打包到一个jar文件中。注意,这个jar文件是一个完全可部署的EJB jar文件。
属性编辑器
在我们继续创建更复杂的EJB之前,让我们看一看Workshop的另一个强大特性:属性编辑器。
我们将依次考察这3种方法,那么我们立即从创建一个EJB项目开始。在你的主窗口中,选择 "File / New",在右侧单击"EJB Project",然后为你的项目选择一个名称。 
缺省情况下,属性编辑器位于窗口右侧,它显示一系列EJBGen标记以及它们的属性和各属性的值。属性编辑器会自动更新自身以显示与你当前编辑的内容相关的属性。比如,如果你处于设计视图中,然后在CMP 字段上单击,针对EJBGen 标记 @ejbgen:cmp字段的属性就会显示出来。
反过来,如果你处于源代码视图中,在源代码中简单地选择一个标记,那么所有相关的属性将被显示在属性编辑器中。
注意,如果你单击或者选择其中某个属性,属性的文档就会显示在属性编辑器的底部,它使你可以轻松地了解某个属性的作用。如果你在属性编辑器中修改某个属性,你会注意到源代码会自动更新。
从现有的表中创建EJB
当你需要编写一个实体 bean时,你并不一定可以自由地为你的表选择模式。如果你已经有了一个表,而且想创建一个访问它的实体 bean,那么Workshop会使这项工作变得非常容易。
为了使用该特性,你必须有一个正在运行的WebLogic服务器。通过窗口底部的项目符号可以看到指示。如果小圆点是红色的,你需要选择菜单"Tools / Server / Start"来启动一个服务器;经过很短的时间后这个点会变绿,这表示服务器正在运行。
在你的EJB项目上单击鼠标右键并选择"New / Entity from a table?",Workshop将连接到你的服务器然后查询已存在的数据源。这些数据源将显示在左侧的列表中。选择你感兴趣的数据源并单击"Next"。
向导的下一页给出了一个列表,显示这个数据源中存在的所有表。如果你对需要的表不能确认,只需简单地选中它,然后它的模式将会显示在右侧。当你已经选择了一个表,单击"Next"。
有些表包含了很多列,你现在可能想将所有这些列映射到你到实体bean。你现在看到的页面给了你删除某些列的机会,Workshop将把这些列映射到你的EJB。单击"Finish",Workshop将生成Entity bean。
如果你看一看你的EJB设计视图,你将注意到你所选择的所有列都有相应的CMP字段,你还将看到Workshop正确地标识出了主键。这时你可以建立自己的EJB而无需作任何进一步的修改。
从一个jar文件中导入一个现有的EJB
如果你有了一个已存在的EJB,你可以使用菜单"Import EJB from jar file"。在这种情况下,你必须提供jar文件的位置以及你的EJB的源文件。Workshop将导入这些源文件并基于在描述符中读取的信息将EJBGen注释添加到这些源文件中。
我们将依次考察这3种方法,但是现在还是让我们从创建一个EJB项目开始。在你的主窗口中,选择 "File / New",在右侧单击"EJB Project",然后为你的项目选择一个名称。 
这是快速转换现有EJB jar文件以便你能在Workshop中编辑它们的一种非常方便的方式。
设计视图
设计视图是一个功能非常强大的窗口,在这里你可以快速创建EJB。如果你在EJB中单击右键,你将注意到你可以轻松地添加CMP字段、业务方法以及finder或者选择方法。你还可以在适当的位置编辑它们或者跳转到它们的源定义以便输入Java代码。
我们将依次考察这3种方法,但是现在还是让我们从创建一个EJB项目开始。在你的主窗口中,选择 "File / New",在右侧单击"EJB Project",然后为你的项目选择一个名称。 
设计视图的另一个重要部分是关系窗口。用部署描述符来实现关系是非常困难的。虽然 EJBGen在一定程度上简化了这个过程,但是设计视图中提供的关系向导使得即使是复杂的关系创建和修改起来也变得很容易。从你的EJB到其他bean的关系显示在右上角。你只需简单地在你所感兴趣的关系上单击右键并单击"Edit",一个面板就会打开,这个面板为你提供了易于阅读的关系视图。
我们将依次考察这3种方法,但是现在还是让我们从创建一个EJB项目开始。在你的主窗口中,选择 "File / New",在右侧单击"EJB Project",然后为你的项目选择一个名称。 
结论
尽管EJBGen 代表了在EJB 开发的简化方面的一个重大的进步,但EJBGen 对Workshop的扩展更是为你提供了一组新的功能,这些功能使得EJB开发看上去简直是微不足道。一旦你开始用这种开发模型编写EJB,要让你再返回去编辑XML就难了。