ejbdeploy 命令

如果输入 JAR 或 EAR 文件包含 CMP bean,则 EJB 部署工具查找在生成部署代码时要使用的模式和映射。如果找不到任何现有模式和映射,则使用自顶向下映射规则来创建模式和映射。

在自顶向下映射方法中,您已经具有现有的企业 bean,并且它们的设计将决定数据库的设计。对于每个 CMP 实体 bean,生成的模式都包含一个表。在这些表中,每一列都对应于企业 bean 的一个 CMP 字段,并且生成的映射将该字段映射至该列。

语法

当在输入 EAR 文件中提供模式和映射时,使用以下命令和可选参数:

ejbdeploy input_JAR_name working_directory output_JAR_name[-cp classpath] [-codegen] [-debug] [-keep] [-ignoreErrors] [-quiet] [-nowarn] [-noinform] [-rmic "options"] [-target name] [-trace] [-sqlj]

当在输入 EAR 文件中不提供模式和映射并且需要自顶向下映射方法时,使用以下命令和可选的参数:

ejbdeploy input_JAR_name working_directory output_JAR_name[-cp classpath] [-codegen] [-dbname name] [-dbschema name] [-dbvendor name] [-debug] [-keep] [-ignoreErrors] [-quiet] [-nowarn] [-noinform] [-rmic "options"] [-35] [-40] [-target name] [-trace] [-sqlj][-OCCColumn]
注:
  • 仅当在自顶向下方式的操作中创建数据库定义时才应使用 -dbschema、-dbname、-dbvendor、-OCCColumn、-35 和 -40 选项。数据库信息便保存在 JAR 或 EAR 文件中的模式文档中,这意味着不需要再次指定这些选项。它还意味着当生成 JAR 或 EAR 时,必须同时定义正确的数据库,原因是以后不能更改它。
  • 缺省情况下,运行 ejbdeploy 命令时,会创建将后端设置为 DB2® 的“数据定义语言”(DDL)文件。如果想要设置另一数据库后端,则使用 -dbname-dbschema-dbvendor 选项来指定您的选择。但是,您只能定义一个后端。如果 JAR 文件已经包含 DB2 后端,而您在命令行上指定了 -dbvendor ORACLE,则不会生成另一个后端,而是将会忽略指定的 dbvendor。
ejbdeploy
用来生成部署代码的命令。如果运行时不带任何自变量,则 ejbdeploy 命令会显示可以配合该命令运行的自变量的列表。
input_JAR_nameinput_EAR_name
包含想要生成部署代码的企业 bean 的输入 JAR 或 EAR 文件标准名称;例如,c:\ejb\inputJARs\myEJBs.jar。(此自变量是必需的。)

ejbdeploy 命令不再使用在系统类路径上指定的内容。然而,从属类需要包含在 JAR 文件中,或通过使用 -cp 选项来包括在命令处理中。必须确保每个企业 bean 的 home 类和远程类的 .class 文件都打包在输入 JAR 或 EAR 文件中。

不应在输入 JAR 或 EAR 文件中包括源文件。如果输入 JAR 或 EAR 文件中存在源文件,则 EJBDeploy 工具会在生成部署代码之前运行重建操作。建议:除去源文件或在类路径上包括所有从属类和资源文件。否则,当在服务器上重建应用程序时,这可能会导致发生问题。

working_directory
存储临时文件的目录名称,这些文件是生成代码所必需的。(此自变量是必需的。)如果在运行 ejbdeploy 命令之前指定的工作目录已存在,则会将临时文件生成到工作目录中(作为 Eclipse 工作空间)。但是,如果在运行该命令之前工作目录尚不存在,则会创建该目录并将 Eclipse 工作空间生成到该目录中。在这两种情况下,除非指定 -keep 选项,否则在完成部署代码生成时将自动除去工作空间及其所有文件。(保留工作空间对问题确定很有用。)
output_JAR_nameoutput_EAR_name
输出 JAR 或 EAR 文件的标准名称,这些文件由 ejbdeploy 命令创建,且包含部署所需要的已生成类;例如:c:\ejb\outputJARs\myEJBs.jar。(此自变量是必需的) 。在运行 ejbdeploy 命令之前,在该标准名称中指定的目录必须已经存在。(注意,当您指定输出 JAR 或 EAR 文件的名称然后运行 ejbdeploy 命令时,具有相同名称的任何现有输出 JAR 或 EAR 文件都将被覆盖,而不会发出警告。)
-cp classpath
如果想对 JAR 或 JAR 文件(它们依赖于其它压缩文件或 EAR 文件)运行 ejbdeploy 命令,可以使用 -cp 选项来指定其它 JAR 或压缩文件的类路径。通过使用 -cp 选项,可以指定多个压缩文件或 JAR 文件来作为自变量。然而,压缩文件或 JAR 文件名必须是用分号隔开、用双引号引起来的标准名称。例如:-cp "path\myJar1.jar;path\myJar2.jar; path\myJar3.jar"
提示: 需要指定 SQLJ 转换程序类 sqlj.zip 的位置。此文件的缺省路径为 x:\java,其中 x 是 DB2 的安装目录,例如,在 Windows® 上为 d:\sqllib\java\sqlj.zip
-codegen
限制 ejbdeploy 命令,仅(a)从输入 JAR 或 EAR 文件中导入代码(b)生成部署代码,以及(c)将代码导出至输出 JAR 或 EAR 文件。它不会编译生成的部署代码或运行远程方法调用编译器(RMIC)。由于通常不会将 Java™ 源代码导出至输出 EAR 或 JAR,所以这是保存生成的代码的唯一方法。
-bindear "options"
使您能够填充带有绑定的 EAR 文件。此自变量仅适用于 EAR 文件。还可以在不指定任何选项的情况下使用此命令。这些选项必须用空格隔开,并用双引号引起来。例如:-bindear "xx yy zz"。有关这些选项的更多信息,请参阅 WebSphere® Application Server 文档。
-dbname "name"
想要创建的数据库的名称。如果数据库的名称中包含任何空格,则必须用双引号将整个名称引起来。例如:-dbname "my database"
-dbschema "name"
想要创建的模式的名称。如果模式的名称中包含任何空格,则必须用双引号将整个名称引起来。例如:-dbschema "my schema"
-dbvendor name
数据库供应商的名称,可用来确定数据库的列类型、映射信息、Table.ddl 以及其它信息。有效的数据库供应商名称有:
  • DB2UDB_V81(DB2 通用数据库 V8.1 Windows 版和 UNIX® 版)
  • DB2UDB_V82(DB2 通用数据库 V8.2 Windows 版和 UNIX 版)
  • DB2UDBOS390_V7 DB2 通用数据库™ z/OS® 和 OS/390® 版 V7)
  • DB2UDBOS390_V8(DB2 通用数据库 z/OS 和 OS/390 版 V8)
  • DB2UDBISERIES(DB2 iSeries™ 版)
  • DB2UDBISERIES_V52(DB2 iSeries V5R2 版)
  • DB2UDBISERIES_V53(DB2 iSeries V5R3 版)
  • ORACLE_V8(Oracle V8.0)
  • ORACLE_V9I(Oracle V9i)
  • ORACLE_V10G(Oracle V10g)
  • INFORMIX_V73(Informix® Dynamic Server.2000 V7.3)
  • INFORMIX_V93(Informix Dynamic Server.2000 V9.3)
  • INFORMIX_V94(Informix Dynamic Server.2000 V9.4)
  • SYBASE_V1200(Sybase Adaptive Server Enterprise V12.0)
  • SYBASE_V1250(Sybase Adaptive Server Enterprise V12.5)
  • MSSQLSERVER_2000(Microsoft® SQL Server 2000)
  • MSSQLSERVER_V7(Microsoft SQL Server V7.0)
  • CLOUDSCAPE_V5(Cloudscape™ V5.1)

建议不要使用下列后端标识:

  • SQL92(1992 SQL 标准)
  • SQL99(1999 SQL 标准)

在不久的将来,当建议不要使用的 SQL92 和 SQL99 后端不再可用时,如果您仍然选择使用 SQL92 和 SQL99 后端标识,请参阅对 SQL 进行 EJB 查询的语法以帮助您确定应该使用哪种后端。

如果您想使用不受支持的数据库,请参阅对 SQL 进行 EJB 查询的语法这一主题,以帮助您选择与不受支持的部署环境最匹配的有效数据库供应商后端标识。

注:
  • 缺省值是 DB2UDB_V81(DB2 V8.1 Windows 版和 UNIX 版)
  • 如果指定了 -sqlj,则它将支持 DB2UDB_V82(DB2 V8.2 Windows 版和 UNIX 版)、DB2UDB_V81(DB2 V8.1 Windows 版和 UNIX 版)、DB2UDBOS390_V8(DB2 OS/390 V8 版)和 DB2UDBOS390_V7(DB2 OS/390 V7 版)。
-debug
指定将使用调试信息编译部署代码。
-keep
控制对运行 ejbdeploy 命令时创建的临时文件(即,Eclipse工作空间)的处置。如果没有此选项,则在该命令完成时将删除 Eclipse 工作空间。
-ignoreErrors
指定即使检测到验证错误也应继续进行处理。
-quiet
在验证期间,禁止显示状态消息(但不会禁止显示错误消息)。
-nowarn
在验证期间,禁止显示警告和参考消息。
-noinform
在验证期间,禁止显示参考消息。
-rmic "options"
允许您将 RMIC 选项传送至 RMIC。这些选项(在 Sun 公司的“RMI 工具”文档中有描述)必须用空格隔开,并用双引号引起来。例如:-rmic "-nowarn -verbose"
-35
如果想要对在“EJB 部署”工具(该工具是随 WebSphere Application Server V3.5 提供的)中使用的 CMP 实体 bean 使用自顶向下映射规则,则指定 -35 选项。在某些情况下可能需要这样做。然而,如果不指定 -35 选项,则会使用某种格式的自顶向下映射(它是对先前已可用格式的改进)。
-40
使用 WebSphere Application Server 4.0 自顶向下映射规则。
-target name
指定特定 WebSphere 运行时环境,要针对它来编译应用程序。确定运行时目标将配置要使用的 JRE 库,以及将配置项目的类路径以包含 WebSphere 运行时库。有效的服务器名称有:
  • WAS510(WebSphere Application Server V5.1)
  • WAS502(WebSphere Application Server V5.02)
  • WAS501(WebSphere Application Server V5.01)
  • WAS500(WebSphere Application Server V5.0)
-trace
将其它进度消息生成到控制台。
-sqlj
注: 此选项仅对符合 2.0 规范的企业 bean 有效。

使您能够使用 SQLJ 而不是 JDBC 来调用 DB2 数据库。指定 -sqlj 选项的情况下, EJB 部署工具会为 CMP bean 生成 SQLJ 代码以使用 SQLJ 来访问数据库。它还自动调用 SQLJ 转换程序来转换 SQLJ 源文件。最后,将由 EJB 部署工具创建 Ant 脚本以帮助您很容易地定制 SQLJ 概要文件。可以对概要文件运行 Ant 脚本以生成 DB2 包。可在运行时使用这些 DB2 包以避免大量的运行时检查。一旦使用“EJB 部署”工具生成了 SQLJ 的部署代码,就需要对生成的 .ser 文件运行 DB2 SQLJ 概要文件定制程序 db2sqljcustomize,该 .ser 文件在与 DB2 后端相关联的 websphere_deploy 文件夹的子文件夹中。有关运行 DB2 SQLJ 概要文件定制程序的更多信息,请参阅 DB2 文档,或者访问 www7b.boulder.ibm.com/dmdd/zones/java/bigpicture.htmlSQLJ 支持部分)。

-OCCColumn
注: 此选项仅在生成自顶向下映射时对 EJB 2.x CMP 实体 bean 有效。
使您能够将列添加至关系数据库表来进行冲突检测。冲突检测列是用来确定是否已更新记录的附加数据库列。添加列以进行冲突检测是一种备用的乐观并发性控制方案,这种并发性控制方案在乐观访问意向的谓词中包括属性。要管理冲突检测列,将需要提供您自己的数据库触发器实现。以下是添加列以进行冲突检测的结果:
  • 冲突检测列的数据类型为 64 位整数。
  • 冲突检测列的命名约定具有以下格式:OCC_bean_name
  • 自顶向下映射会生成额外的关系列。不能将此列映射至企业 bean。

示例:运行 ejbdeploy 命令:

ejbdeploy AccessEmployee.ear d:\deploydir  AccessEmployee_sqlj.ear -dbvendor DB2UDB_V81 -keep -sqlj -cp "e:\sqllib\java\sqlj.zip"
说明:

DB2 通用数据库(版本 8.1 Windows 版和 UNIX 版)安装在 e:\sqllib 中。

ejbdeploy 命令将 AccessEmployee.ear 文件(具有符合 EJB 2.0 规范的企业 Bean)作为输入并产生 AccessEmployee_sqlj.ear 作为输出。因为使用 -sqlj 选项,所以在生成代码时使用 SQLJ 而不是 JDBC 来调用 DB2。

当 ejbdeploy 运行时,它在指定为工作目录的目录 d:\deploydir 中创建 Eclipse 工作空间。当它完成运行时,删除此工作空间。但是,-keep 选项使 ejbdeploy 在不删除该工作空间的情况下结束。

相关概念
EJB 部署工具
使用 SQLJ 部署 EJB 应用程序的需求
DB2 SQLJ 概要文件定制程序
相关任务
从命令行生成 EJB 部署代码
相关信息
使用 SQLJ 进行数据访问来部署 EJB 应用程序
使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.