引言
这一系列文章展示了 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 菜单
选择 EJB JAR file,然后单击 Next。
图 2. File Import 对话框
定位到 C:\JSFArticleSeries\Part4\StockSystemEJB.jar。Project 名称应该为 StockSystemEJB。选择现有的 EAR 文件 StockSystemEAR。(您必须显式地选择现有的 EAR;它在缺省情况下为 StockSystemEJBEAR,这可能轻易让人误解。)单击 Finish。
图 3. EJB Import
在弹出 Repair Server Configuration 对话框时,请单击 OK。
图 4. Repair Server Configuration
既然已经将 EJB JAR 文件导入现有的 EAR 之后,现在就需要让它对 WAR 文件可视。可以这样来实现:将 EJB JAR 文件添加到 WAR 文件的清单中,这种方式是处理类路径的标准 J2EE 方式之一。Application Developer 提供了一种完成这一操作的简单方法:在一个步骤中将 EJB JAR 同时添加到构建时和编译时类路径中。
右键单击 Project Navigator 视图中的 PersonalTradeJSF Web 项目,选择 Properties。
图 5. Project Navigator
选择 Java JAR Dependencies。在该对话框中,选中 StockSystemEJB.jar。确保 Use EJB JAR 也被选中。(对于 Version 5.1.1,Application Developer 支持会生成 EJB Client JAR)。
图 6. Java JAR Dependencies
单击 OK。
在我们的应用程序中,PersonalTradeJSF 会访问 StockFacadeEJB。StockFacadeEJB 与实体 bean 相结合来访问当前股票数据。访问 EJB 时使用 EJB 引用被视为一种最佳实践。虽然 EJB JAR 提供了委托来隐藏 EJB 客户端 API 的细节,但它使用了资源引用。由于委托是在 Web 应用程序的上下文里调用的,所以还需要定义引用。
在 Project Navigator 中,利用 PersonalTradeJSF 底下的链接打开 Web Deployment Descriptor 编辑器。
图 7. 打开 Web Deployment Descriptor
选择该编辑器底部的 References 选项卡。
图 8. References 选项卡
选择 References 页面中的 EJB Local 选项卡。
图 9. EJB Local References
选择 EJB Local References 选项卡下的 Add。
图 10. 添加 EJB Local references