分享
 
 
 

使用ForteforJava开发EJB(下)

王朝java/jsp·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

在逻辑bean中鼠标右击一个组件也会弹出上下文菜单,菜单中显示可用于该组件的特定的子操作集。例如,本地接口的上下文菜单中只提供增加新的create和find方法的操作。而远程接口的上下文菜单只提供创建新的business方法的操作。

不使用逻辑bean也可以直接加工bean的接口与类。例如,在需要创建bean的类与接口的子类,或是将其映射到数据库表时你可能希望直接去编辑它,或单独对某个类或接口进行编译。

在定义bean的新的方法或字段的过程时,会有对话框引导你。这些对话框会提示输入方法或字段的名称,字段的类型,方法的返回类型,所有的方法参数及其类型,所有除了EJB必要的异常外的附加异常(必要的异常已经缺省添加了)。IDE 会在bean的类,远程或本地接口处加入正确的方法签名。图4展示了创建一个新的商务方法时的对话框。

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所示。

在浏览器窗口内输入URL来测试应用程序,如以下所示:

http://server:8000/test application

(其中server是我们的web服务器的名称,test application则是开发环境中创建的测试程序的名称。例如:MySession_TestApp)

通过浏览器视图可以访问本地和远程接口的实例,从本地接口开始。接口中的方法可以被调用。例如,用create方法来创建远程接口的一个实例。方法需要的任何参数都可由浏览器中输入,它则会显示方法的返回值。这个视图还会保留测试会话中创建的一系列对象。比如,图10显示的是运行MySession_TestApp时浏览器内显示的测试页面。

Figure 10: 在浏览器中使用IDE 生成的测试程序

结论

这篇文章描述了如何使用FORTE FOR JAVA企业版产品来进行EJB的开发,部署与测试,使整个过程更容易,以便我们把精力集中编写在bean的商务逻辑,这也是作为bean开发者的正务。这个目标是能够达成的,因为FORTE FOR JAVA企业版自动管理许多EJB的开发工作,例如保持本地与远程接口和bean 实现类之间的同步,生成需要的方法,保证正确的方法返回类型,等等。

开发完EJB后,FORTE FOR JAVA企业版可以一步完成组成bean的类与接口的编译。接着对已编译的bean打包和部署到符合J2EE规范的应用服务器上,最后,创建一个测试客户端。这个测试客户端可以从浏览器一端调用以测试该bean的逻辑。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有