Figure 4: 创建一个商务方法 如何编写方法的实现:首先,在FORTE FOR java企业版资源编辑器(Source Editor)窗口中打开bean的实现类,接着,找到方法声明,敲入代码。注重ForteJava企业版把Java保留字用兰色显示。另外,编译bean时如有编译错误将用红色标出。 Bean的引用(reference),诸如EJB引用,环境表项(environment entries),资源构造引用(resource factory references),安全角色引用(security role references)等皆可以在属性编辑器(PRoperty Editor)中的References 标签内指定。在这里可以添加,编辑和删除这些引用和环境表项。References标签如图5所示。
Figure 5: 属性编辑器中的References 标签 验证和编译EJB Forte for Java企业版包含一个验证EJB(Validate EJB)命令和编译所有EJB的类的命令。验证类似于编译。执行Validate EJB时,Forte for Java企业版会检查bean的类是否正确遵守J2EE规范。源代码中的错误被提亮显示,必须予与更正。 除了可以编译或验证单个的bean组件之外,也可以通过企业版的逻辑bean窗口,使用单条命令就编译或验证所有组件。浏览器窗口中标明了哪些bean需要编译,哪些bean已经成功编译了。其中bean的接口与类用一连串的点加以标记的表示需要编译。如图6中,名为ProdUCt 和Mysession的bean它们的类、远程接口与本地接口都需要进行编译(注重逻辑bean旁没有这些标记)。相比之下, bean CustomerTbl没有这种标记,表示它已经成功编译了。
Figure 6: 浏览器窗口中bean的编译标记 打包与部署 编译之后,EJB类就可以打包到需要的JAR文件、创建一个EJB模块,然后部署到J2EE应用服务器。使用Forte for Java企业版,不仅可使打包与部署过程缩减到一步,而且IDE 还能生成测试程序---一个jsp客户端,可以从浏览器调用它来测试bean。 在打包EJB和创建EJB模块之前,任何有bean的开发者指定的EJB引用都需要人工解析(resolve)。测试客户端应用程序不能自动处理含有EJB引用的EJB模块的打包。EJB引用使从特定的EJB模块的属性编辑器里解析的。 在组装(assembly)过程中,bean的开发者指定的引用和环境表项可以被EJB模块上执行的操作覆盖(overridden)。EJB模块的部署描述符也可以人工编辑。假如覆盖了表项或引用,新的值将只应用于引用此EJB的模块。也就是说,并不会影响为EJB设置的初始值。假如同一个EJB也包含在另一个EJB模块中,则后一个EJB模块将引用bean的初始环境表项和引用值。一个EJB模块的覆盖过程如图7所示。
Figure 7: 覆盖一个 EJB 引用 EJB模块通过在一系列被引用的java类上执行传递性关闭(transitive closure)来协助bean的打包。传递性关闭在编译时会算出一个类中所有可识别的类引用。这样做的目的是减轻组装器维护所有被引用的类的负担。结果,组装器只需要维护被动态引用的类就行了。 解析bean的EJB引用之后,就可以鼠标右击逻辑bean来完成它的打包和部署。然后从上下文菜单中选择创建EJB测试程序的选项。IDE 将会提示你指定要部署应用的应用服务器。这个过程可以随意分解成几个步骤:例如,可以使用命令:New EJB Module(创建新的EJB模块)将bean的类打包到一个EJB模块中,接着在此模块上调用部署的操作,然后再创建它的测试程序。 为了使部署功能起作用,在此之前必须从IDE 的Server Registry(服务器注册)里选择缺省服务器。Server Registry列出你的系统上所有可用的服务器。同时还必须创建服务器的一个实例,启动服务器进程。 尽管J2EE应用服务器的部署过程一般是一致的,每一种应用服务器却都有自己的部署方式。目前,J2EE平台正在定义一个标准的服务器部署API。此API通过提供标准的在与J2EE相兼容的应用服务器上部署EJB的方法,将会增加EJB在J2EE应用服务器的可移植性。 鉴于服务器API有望成为一种平台标准,FORTE FOR JAVA企业版提供了一个可以插入应用服务器软件的服务器API。该服务器API包含了整个部署过程,从而实现FORTE FOR JAVA企业版对部署过程的标准化。应用服务器厂商可以向该API提供他们自己的插件。基于特定的应用服务器,每个插件的兼容性有所不同。这些插件在FORTE FOR JAVA企业版开发环境和每个支持J2EE的服务器间运行。他们实现服务器API,将各个服务器的部署过程与FORTE FOR JAVA企业版集成在一起。图8示描述了这个结构。
Figure 8: 应用服务器部署插件 指定了即将使用的应用服务器,FORTE FOR JAVA企业版就会自动插入相应的服务器API,好预备部署EJB。从开发者的角度看,不管使用哪一种服务器,开发过程都很简单,直截了当。因为FORTE FOR JAVA企业版懂得不同的服务器之间部署上的差别,它可以自动处理好这些差别。 测试 bean Figure 9: Generating a Test application 在成功部署这些bean之后,FORTE FOR JAVA企业版会为bean创建一个EJB和一个Web模块,以及bean的测试程序。其中EJB模块包含已编译的EJB类。Web模块则包含测试客户端的JSP(Java Server Pages)。要测试bean时,只需简单地在浏览器内调用测试程序即可。 例如,在部署会话bean MySession时,FORTE FOR JAVA企业版会创建EJB模块:ySession_EJBModule, Web模块:MySession_WebModule,和测试程序:MySession_TestApp。如图9所示。
Figure 10: 在浏览器中使用IDE 生成的测试程序 结论 这篇文章描述了如何使用FORTE FOR JAVA企业版产品来进行EJB的开发,部署与测试,使整个过程更轻易,以便我们把精力集中编写在bean的商务逻辑,这也是作为bean开发者的正务。这个目标是能够达成的,因为FORTE FOR JAVA企业版自动治理许多EJB的开发工作,例如保持本地与远程接口和bean 实现类之间的同步,生成需要的方法,保证正确的方法返回类型,等等。 开发完EJB后,FORTE FOR JAVA企业版可以一步完成组成bean的类与接口的编译。接着对已编译的bean打包和部署到符合J2EE规范的应用服务器上,最后,创建一个测试客户端。这个测试客户端可以从浏览器一端调用以测试该bean的逻辑。