服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

使用forte for java开发ejb(下)


  在逻辑bean中鼠标右击一个组件也会弹出上下文菜单,菜单中显示可用于该组件的特定的子操作集。例如,本地接口的上下文菜单中只提供增加新的create和find方法的操作。而远程接口的上下文菜单只提供创建新的business方法的操作。
  不使用逻辑bean也可以直接加工bean的接口与类。例如,在需要创建bean的类与接口的子类,或是将其映射到数据库表时你可能希望直接去编辑它,或单独对某个类或接口进行编译。
  在定义bean的新的方法或字段的过程时,会有对话框引导你。这些对话框会提示输入方法或字段的名称,字段的类型,方法的返回类型,所有的方法参数及其类型,所有除了ejb必要的异常外的附加异常(必要的异常已经缺省添加了)。ide 会在bean的类,远程或本地接口处加入正确的方法签名。图4展示了创建一个新的商务方法时的对话框。
   使用forte for java开发ejb(下)(图一)
  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所示。
   使用forte for java开发ejb(下)(图二)
  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没有这种标记,表示它已经成功编译了。
   使用forte for java开发ejb(下)(图三)
  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所示。
   使用forte for java开发ejb(下)(图四)
  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示描述了这个结构。
   使用forte for java开发ejb(下)(图五)
  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所示。
   使用forte for java开发ejb(下)(图六)
  在浏览器窗口内输入url来测试应用程序,如以下所示:
  http://server:8000/test application
  (其中server是我们的web服务器的名称,test application则是开发环境中创建的测试程序的名称。例如:mysession_testapp)
  通过浏览器视图可以访问本地和远程接口的实例,从本地接口开始。接口中的方法可以被调用。例如,用create方法来创建远程接口的一个实例。方法需要的任何参数都可由浏览器中输入,它则会显示方法的返回值。这个视图还会保留测试会话中创建的一系列对象。比如,图10显示的是运行mysession_testapp时浏览器内显示的测试页面。
  使用forte for java开发ejb(下)(图七)
  figure 10: 在浏览器中使用ide 生成的测试程序
  结论
  这篇文章描述了如何使用forte for java企业版产品来进行ejb的开发,部署与测试,使整个过程更容易,以便我们把精力集中编写在bean的商务逻辑,这也是作为bean开发者的正务。这个目标是能够达成的,因为forte for java企业版自动管理许多ejb的开发工作,例如保持本地与远程接口和bean 实现类之间的同步,生成需要的方法,保证正确的方法返回类型,等等。
  开发完ejb后,forte for java企业版可以一步完成组成bean的类与接口的编译。接着对已编译的bean打包和部署到符合j2ee规范的应用服务器上,最后,创建一个测试客户端。这个测试客户端可以从浏览器一端调用以测试该bean的逻辑。

扫描关注微信公众号