WebSphere Studio Application Developer 移植指南(转贴2)
第三部分 — VisualAge for Java,版本 3.5.3 EJB-1.0 JAR 对比 VisualAge for Java,版本 4.0 EJB-1.1 JAR 的不同
在 VisualAge for Java,版本 3.5.3 中,可以生成未部署的 EJB 1.0 JAR 或者生成一个已部署的 EJB 1.0 JAR(带有部署代码、存根、绑定代码等)。可以将 EJB 1.0 JAR 导入 WebSphere Application Server,版本 4.0 Application Assembly Tool(AAT)并使用它来生成部署和控制描述符以及运行 EJB Deploy Tool 以将部署代码、存根等生成为 EJB 1.1 格式 JAR(EAR)。上述步骤的直接结果是您能拥有一个可以在 WebSphere Application Server,版本 4.0 中运行、并因此还可以在 WebSphere Studio Application Developer 中运行的已部署的 JAR(因为其 WebSphere 测试环境是一个 WebSphere Application Server,版本 4.0 服务器)。但是,运行时执行并不意味着正在进行中的开发能力。
可以将以前生成的 Java 代码包括在相应的 EJB JAR 中并将它们导入 WebSphere Studio Application Developer,WebSphere Studio Application Developer 将解析并理解 EJB 会话支持、安全性信息、查找程序信息和组装描述符(const 方法等)。但是,将丢失所有扩展(类继承和外键关联)和映射以及模式信息。只有使用 VisualAge for Java,版本 4.0 EJB Export Tool 才能保留它们以创建包含映射、模式 XML 信息以及扩展 XML 信息的 EJB 1.1 JAR。另外,1.0 企业 bean 中生成的存根类的名称与 1.1 企业 bean 中的也不一样。直接结果是 EJB-1.0 JAR 和 EJB Deploy Tool EJB-1.1 JAR 都不保留允许在 WebSphere Studio Application Developer 的正在进行的开发中使用它们的基本设计元数据。
VisualAge for Java,版本 4.0 EJB Export Tool 生成一个 EJB 1.1 JAR,它包含所有 EJB 设计元数据,包括映射和模式信息以及扩展(类继承和外键关联),这样就可以立即在 WebSphere Studio Application Developer 中继续开发并且在任何需要它们的时候重新生成所需的部署代码。这是将 VisualAge for Java 企业 bean 移植到 WebSphere Studio Application Developer 唯一受支持的方法;并且使用 VisualAge for Java,版本 4.0 EJB Export Tool 是可用于 WebSphere Studio Application Developer 中正在进行的 EJB 开发的唯一方法。
第四部分 — 将多个 VisualAge for Java EJB 组移动到 WebSphere Studio Application Developer EJB 项目中
在 VisualAge for Java 中,您可以有多个 EJB 组,每个组用于组内继承或关联。一般情况下,您会把每个 VisualAge for Java EJB 组导出到匹配的 JAR 中(使用 VisualAge for Java 4.0 EJB Export Tool),然后将该 JAR 导入到匹配的 WebSphere Studio Application Developer EJB 项目中。
WebSphere Studio Application Developer EJB 项目与 EJB 模块相对应。在不需要组内继承或关联时,您可能希望将 EJB 组保持为独立的 EJB 项目 — 可以关闭单个项目从而将总体内存需求保持在较低水平。通过使用 WAR 和 EAR 文件,WebSphere Studio Application Developer 具有企业级分组的概念,因此可以在逻辑上以这种方式组合几个 EJB 组,然后将它们作为单个单元来部署。
如果将多个 EJB 组导入同一个 EJB 项目,则可能无法正确合并它们中的任何 XML(最后导入的组覆盖前面导入的组)。
第五部分 — 移植企业 bean
下列步骤概述了如何移植企业 bean。下面提供了关于如何执行这些步骤的详细信息:
使用 VisualAge for Java,版本 4.0 EJB Export Tool 将它们导出为 1.1 JAR。
将它们导入 WebSphere Studio Application Developer。
生成代码和数据源绑定信息。
如果还没有为测试服务器创建 WebSphere Studio Application Developer 服务器配置,则创建它。
将数据源信息添加到服务器配置中。
使用新的 EJB 测试客户机来测试企业 bean。
导出企业 bean
在 VisualAge for Java,版本 4.0 中,将 "Export Tool for Enterprise JavaBeans 1.1" 功能部件添加到工作区中。
在“工作台”的 EJB 页面中,在想要导出的 EJB 组上单击鼠标右键,然后单击 Export => EJB 1.1 JAR。
按需要填充域(确保选中了 .java 复选框)然后单击 Finish。
将企业 bean 导入 WebSphere Studio Application Developer
在 WebSphere Studio Application Developer 中创建一个新的 EJB 项目和一个新的 EAR 项目。将自动切换至 J2EE 透视图。
选择 File => Import => EJB JAR file。单击 Next,然后选择 JAR 文件、EJB 项目和 EAR 文件。单击 Finish。
如果遇到任何错误(将在 Tasks 视图中列出它们),则参考下面的已知问题和解决方法一节以解决问题。
导入 EJB 文件后,请遵循查找 EJB 信息中的指导信息以帮助您查明在何处可以找到 EJB 和方法属性、模式以及映射等。
生成代码和数据源绑定信息
在 J2EE 视图中,展开 EJB Modules 文件夹然后选择新导入的 EJB JAR。
在 EJB JAR 的弹出菜单中单击 Generate => Deploy and RMIC Code。选择为所有 bean 生成代码。
在 EJB JAR 的弹出菜单中单击 Open With => EJB Extension Editor。
在 EJB 扩展编辑器中单击 Bindings 选项卡。
选择您的 EJB JAR 并输入 Datasource JNDI 名称。记录这个名称,因为以后在测试服务器实例中配置数据源时将使用它。
保存更改并关闭 EJB 扩展编辑器。
创建服务器配置和实例
切换至 Server 透视图。
单击 File => New => Server Project。
在 Project name 域中输入 ServerTest。单击 Finish。
在 Navigator 视图中选择 ServerTest。在其弹出菜单中单击 New => Server Instance and Configuration。
输入服务器名称,例如 MyServer,然后在 Folder 列表中选择 ServerTest。
在 Server instance type 域中单击 WebSphere V4.0 Test Environment。在 Template 域中单击 None。
单击 Next。指定服务器端口号为 8080。
单击 Finish。
此时将创建一个新的服务器配置和实例。
将 JDBC 数据源添加到 WebSphere 4.0 服务器配置中
在 Server Configuration 视图中,展开 Server Configurations 然后选择您的服务器。
在其上单击鼠标右键,然后在弹出菜单中单击 Open。
单击 Data source 选项卡。
在 JDBC 驱动程序列表(JDBC Driver List)中,选择适当的数据库驱动程序(例如,如果使用 DB2®,则选择 Db2JdbcDriver),然后单击 Edit。
验证 Class path 域包含指向 db2java.zip 的正确路径。单击 OK。
如果使用的不是 DB2,则添加一个新的驱动程序 — 请确保使用了数据库供应商提供的 J2EE JDBC 驱动程序。
选择 JDBC 驱动程序,然后单击 Data source 域右侧的 Add 按钮。
在 Add a data source 对话框中,输入数据源名称。在 JNDI 域中,输入与您在第 5 步生成代码和数据源绑定信息中使用的名称相同的名称。输入您的数据库的名称,然后单击 OK。
保存所做的更改。
使用 EJB 测试客户机测试企业 bean。
在 Server Configuration 视图中,展开 Server Configurations,然后选择服务器。在其上单击鼠标右键,然后单击 Add Project。选择含有您的 EJB 模块的项目。
在 Servers 视图中,选择服务器实例。在其上单击鼠标右键,然后在弹出菜单上单击 Start。
该项目将被发布,服务器将会启动。稍过片刻,单击 Console 选项卡以查看控制台窗口。您将会看到一条表明已为电子商务打开缺省服务器(Default Server)的消息。拖动控制台滚动条以验证已启动了 EJB JAR WBOnline。
在 J2EE 视图中,展开 EJB Modules 文件夹,选择想测试的企业 bean,在其上单击鼠标右键,然后单击 Run on server。
已知的问题和解决方法
当移植方法查找程序助手时,由于查找程序助手已经移入一个 XML 描述文件,所以它们的接口会消失。由于您的查找程序对象通常要实现该接口,所以这会产生一个问题;因此必须将除去该实现。
如果在企业 bean 中使用继承,并且构建了自己的定制查找程序,那么由于在 WebSphere Studio Application Developer 中生成的代码中的域映射不相同,所以您的查找程序可能会出问题。要解决这一问题,转至 EJSCMPxxxxxx 生成的 bean,找到为 findbyPrimaryKey 生成的 select 语句,然后将其用做模板。
如果(在 WebSphere Studio Application Developer 中)设置了 Preferences 页使得每次保存更改时不进行自动构建,那么您必须执行下列步骤以生成 EJB 部署代码和 RMIC 存根:
选择 EJB 项目,单击鼠标右键,然后选择 Generate for enterprise bean(s) => Deploy and RMIC code。
在得到一个错误之后(因为 RMIC 只可以识别编译过的代码,而生成的 Java 类还没有编译,所以会给出一个错误),切换到 Java 透视图并构建该项目。
重复第一步。这次将不会得到任何错误。
重复第二步,由于想编译新生成的存根,所以当您部署企业 bean 时,您不会收到任何运行时错误。
第六部分 — 查找 EJB 信息
下面是一个关于 EJB 项以及在将企业 bean 移植到 WebSphere Studio Application Developer 之后在何处找到它们的列表:
项 位置
企业 bean(域和类) 在 J2EE 视图中展开 EJB Modules 文件夹。
企业 bean(finder 类、访问 bean、生成的类)。 在 J2EE 视图中展开 EJB Modules 文件夹,然后转至 com 子目录。它们位于该子目录。
关联信息 在 J2EE 视图中展开 EJB Modules 文件夹,然后选择您想使用的 EJB JAR。在弹出菜单中,单击 Open With => EJB Extension Editor。在扩展编辑器里,单击 Relationships 选项卡。
查找程序助手描述 在 J2EE 视图中展开 EJB Modules 文件夹,然后选择您想使用的 EJB JAR。在弹出菜单中,单击 Open With => EJB Extension Editor。在扩展编辑器里,单击 Finders 选项卡。
映射/模式描述 在 J2EE 视图中展开 EJB Modules 文件夹,然后选择您想使用的 EJB JAR。在弹出