用JavaBean数据组件集成JSF应用程序与EJB(1)

1/5/2008来源:Java教程人气:5870


  引言
  这一系列文章展示了 WebSphere® Studio V5.1.1 中的 java™ Server Faces Technology PReview 的特征,本文是其中的第 4 部分。该系列文章包括以下几个部分:
  
  第 1 部分:创建 JSF Web 项目和页面模板
  第 2 部分:创建 JSF 提交表单
  第 3 部分:创建通过 Web Data Objects(WDO,很快就会成为 SDO:Service Data Objects)访问数据的 JSF 应用程序
  第 4 部分:使用 Action Handlers 和 JavaBean 数据组件集成 JSF 应用程序与 Enterprise Java Beans
  第 5 部分:使用 Web 服务代理组件创建 JSF Web 服务客户端。
  
  在文章系列的第 3 部分中,我们看到了 JSF 应用程序如何利用 Service Data Object(SDO)技术来访问数据。在本文中,我们将会看到 JSF 如何利用现有的 J2EE 技术。我们将会创建一个调用现有的 EJB 应用程序的 JSF 页面,并在兼顾 JSF 的 RAD 性质的前提下运用 JavaBean Data 控制来显示 EJB 调用结果。另外,我们将会使用 Quick Edits 视图来编写 Action Handler,以便调用现有的无状态会话 Bean。
  
  要想完成这些练习,您需要下载包含在本文中的资料。万一您还没完成第 3 部分,下载文件包含了解决方案;请按照第 3 部分所描述的方法导入该 EAR 文件。要想运行示例,您还需要按照第 3 部分所阐述的方法创建数据库;导入解决方案之后,请按照第 3 部分最后一节描述的方法运行应用程序,这样就可在用于此练习的 Server Configuration 中创建 JDBC 数据源。
  
  导入并安装 StockSystemEJB
  现在我们来为第 2 部分创建的 Stock Data Page 创建下一个 JSF 结果页面。首先我们导入现有的 EJB JAR 文件,然后创建显示结果的 JSF 页面。
  
  要想导入 EJB JAR 文件并使它成为现有 EAR 文件的一部分,您需要执行以下的步骤:
  在 WebSphere Studio Application Developer(以后简称为 Application Developer)中选择 File => Import。
  
图 1. application Developer File 菜单

  
 用JavaBean数据组件集成JSF应用程序与EJB(1)(图一)

  选择 EJB JAR file,然后单击 Next。
  
图 2. File Import 对话框

  
 用JavaBean数据组件集成JSF应用程序与EJB(1)(图二)

  定位到 C:\JSFArticleSeries\Part4\StockSystemEJB.jar。Project 名称应该为 StockSystemEJB。选择现有的 EAR 文件 StockSystemEAR。(您必须显式地选择现有的 EAR;它在缺省情况下为 StockSystemEJBEAR,这可能轻易让人误解。)单击 Finish。
  
图 3. EJB Import

  
 用JavaBean数据组件集成JSF应用程序与EJB(1)(图三)

  在弹出 Repair Server Configuration 对话框时,请单击 OK。
  
图 4. Repair Server Configuration

  
 用JavaBean数据组件集成JSF应用程序与EJB(1)(图四)

  既然已经将 EJB JAR 文件导入现有的 EAR 之后,现在就需要让它对 WAR 文件可视。可以这样来实现:将 EJB JAR 文件添加到 WAR 文件的清单中,这种方式是处理类路径的标准 J2EE 方式之一。Application Developer 提供了一种完成这一操作的简单方法:在一个步骤中将 EJB JAR 同时添加到构建时和编译时类路径中。
  右键单击 Project Navigator 视图中的 PersonalTradeJSF Web 项目,选择 Properties。
  
图 5. Project Navigator

  
 用JavaBean数据组件集成JSF应用程序与EJB(1)(图五)

  选择 Java JAR Dependencies。在该对话框中,选中 StockSystemEJB.jar。确保 Use EJB JAR 也被选中。(对于 Version 5.1.1,Application Developer 支持会生成 EJB Client JAR)。
  
图 6. Java JAR Dependencies

  
 用JavaBean数据组件集成JSF应用程序与EJB(1)(图六)

  单击 OK。
  在我们的应用程序中,PersonalTradeJSF 会访问 StockFacadeEJB。StockFacadeEJB 与实体 bean 相结合来访问当前股票数据。访问 EJB 时使用 EJB 引用被视为一种最佳实践。虽然 EJB JAR 提供了委托来隐藏 EJB 客户端 API 的细节,但它使用了资源引用。由于委托是在 Web 应用程序的上下文里调用的,所以还需要定义引用。
  在 Project Navigator 中,利用 PersonalTradeJSF 底下的链接打开 Web Deployment Descriptor 编辑器。
  
图 7. 打开 Web Deployment Descriptor

  
 用JavaBean数据组件集成JSF应用程序与EJB(1)(图七)

  选择该编辑器底部的 References 选项卡。
  
图 8. References 选项卡

  
 用JavaBean数据组件集成JSF应用程序与EJB(1)(图八)

  选择 References 页面中的 EJB Local 选项卡。
  
图 9. EJB Local References

  
 用JavaBean数据组件集成JSF应用程序与EJB(1)(图九)

  选择 EJB Local References 选项卡下的 Add。
  
图 10. 添加 EJB Local references

  
用JavaBean数据组件集成JSF应用程序与EJB(1)(图十)