级别: 初级 Ann Black (AnnBlack@us.ibm.com), WebSphere 开发人员,WebSphere SWAT 小组, IBM 奥斯汀实验室 Mihaela Herescu (olteamh@us.ibm.com), 软件工程师,WebSphere SWAT 小组, IBM 奥斯汀实验室 Barry Searle (searle@ca.ibm.com), WebSphere Studio Application Developer 迁移小组负责人, IBM 多伦多实验室 Ellen McKay (ecmckay@ca.ibm.com), WebSphere Studio Application Developer 信息开发人员, IBM 多伦多实验室
2002 年 12 月 01 日 将部署到 BEA WebLogic Server 上的 WebGain VisualCafÉ Web 应用程序迁移到 IBM WebSphere Studio Application Developer 第 3 部分
© copyright International Business Machines Corporation 2002. All rights reserved.
引言
本文描述了如何把 J2EE™ 部署描述符从 BEA Systems, Inc. WebLogic™Servers(以下称为 WebLogic)迁移到 IBM®WebSphere® Studio Application Developer(以下称为 Application Developer)。想了解更多有关从其他环境迁移到WebSphere Studio 工具的信息,请参阅
StudioMigration Resources 页和
VisualAge to Studio Transition 页。
本文所描述的是 WebLogic2WebSphere(以下称为 WL2WAS)工具,如果想在 WebSphere Application Server 中,而不是在 WebLogic Server 中部署或执行 EJB 应用程序,或者既想用 WAS,又想用 WL,那么只有这时,本文及本文所述 WebLogic2WebSphere(以下称为 WL2WAS)工具才是您需要的。换句话说,您
无需将部署描述符迁移为 WebSphere 格式,就可以将应用程序转到 Application Developer 中然后继续部署到 WebLogic。(本系列文章的
第 1 部分描述了如何迁移 Web WAR 文件,而
第 2 部分则描述了如何迁移 EJB JAR 文件)。如果您想将应用程序部署到 WebSphere,那么您就需要迁移部署描述符,以便 Application Developer 能够理解并维护这些文件,从而将应用程序部署到 WebSphere。
这一系列的第 1 部分和第 2 部分大体上概述了到 Application Developer 的迁移过程。本文则更加具体,描述了如何使用在第 2 部分中所用的 WL2WAS 工具来处理 WebLogic 部署描述符并将其转换为 WebSphere 部署描述符。本文是从迁移的角度来描述的。想要下载 WL2WAS 工具, 请参阅
WL2WAS 页。
您所能够下载的 WL2WAS 工具已经在 Windows 2000 上使用 WebSphere Studio Application Developer 4.0.3 和 WebSphere Application Server 4.0.3 进行了测试,而且运行情况符合其描述,但它可能并不适用于这些产品将来的版本。您所能够下载的代码既不是 Application Developer 的一部分,也不是 WebSphere Application Server 的一部分,而且未受到官方支持。在下载和使用这些代码之前,您需要阅读并接受一份许可证协议。如果您有什么建议或者遇到了什么问题,请发电子邮件给
Ann Black或
Mihaela Herescu。
背景:J2EE 应用程序为什么不能在任意应用程序服务器上运行?
J2EE 规范是一种用于执行及部署企业应用程序的业界标准。该规范使企业应用程序的运行方式标准化,其首要目的是实现可移植性。不过,该规范的某些特性则有待供应商来设计和实现。应用程序服务器提供商还可以将该规范扩展以提供前沿功能,而这些扩展的功能可以将应用程序和供应商的特定服务以及中间件运行时相结合。
IBM WebSphere Application Server 和 BEA WebLogic Application Server 都是先进的、高端的应用程序服务器,而且它们基于 J2EE 规范。但是,它们实现规范的一些特性的方式不同,其扩展特性也有所不同。这些不同可能会使您很难将企业应用程序从一个应用程序服务器迁移到另一个应用程序服务器。迁移不仅仅包括安装新软件和重新安装应用程序。它还涉及到诸如教学、技能、代码、运行时、部署、工具使用等等问题。
WL2WAS 迁移工具
WL2WAS 工具的基础是一个带有 WL2WAS 插件的应用程序迁移框架(Application Migration Framework(AMF))。您可以使用 WL2WAS 迁移工具来帮助您将 WebLogic 版本 5.0、 6.0 和 6.1 部署描述符文件转换成 WebSphere 版本 4.0 格式。想要下载这个工具并且了解它的内部技术详情,请参阅
WL2WAS 页。
以下 WebLogic 部署描述符是使用该工具迁移的:
weblogic-ejb-jar.xml EJB 部署描述符
weblogic.xml Web 应用程序部署描述符
weblogic-cmp-rdbms-jar.xml 持久性部署描述符,它为每个将使用容器管理的持久性的 EJB 定义了持久性元素。
|
尽管您可以使用 WL2WAS 来
协助
您将 WebLogic 应用程序迁移到 WebSphere,WebLogic 部署描述符文件的转换仍然
不是完全自动进行的
:
- 有几个 WebLogic 部署描述符元素映射到经由系统管理控制台(System Admin console)或 WebSphere 4.0 中的 WSCp 配置的属性,这些元素需要手工配置。对于这些不映射到 WebSphere 部署描述符文件的元素来说,将会有一些消息被记录,其中包含关于它映射到的最佳属性的信息,以及指向描述如何配置属性的文档的指针。所有的记录文件都位于
<AMF_INSTALL_DIR>\logs 目录中。对于每一个被迁移的 WAR、JAR 或 EAR 模块来说,会有一个描述如何处理每个 WebLogic 标记的记录报告文件被生成。对于 AMF 框架和 WL2WAS 工具,也会有日志文件被生成。这些记录文件描述了在运行这个工具时发生的任何故障和错误。
- 有些 WebLogic 部署描述符元素在 WebSphere 版本 4 中没有直接等同的部署描述符元素。在这种情况下,您必须评估应用程序的运行时行为才能够确保它正确运行。为了运行 WebLogic 工具并执行手工迁移,必须具备 WebLogic 和 WebSphere 的使用经验。
WL2WAS 定制迁移文档
定制迁移文档是针对每个由工具迁移的输入组件而生成的,它是 WL2WAS 输出的一部分。这个定制迁移文档被命名为
<input_filename>_date 并被置于 WL2WAS 插件工具的
logs 目录和 AMF 安装目录中。
定制迁移文档指定 WL2WAS 在 WebLogic 部署描述符中定位的每一种属性及各属性到类似的 WebSphere Application Server 部署描述符设置中的映射。如果这些属性可以自动映射到 WebSphere 部署描述符中,那么 WL2WAS 便实现这个转变并在记录文件中这样指定。如果映射需要手工转换,那么定制迁移文档就描述了如何利用对 IBM 文档的引用进行手工转换。在有些情况下,不同的 WebLogic 属性与 WebSphere 属性间的映射是相似的,但功能并不完全相同。这些情况将在定制迁移文档中标记说明,并且需要手工调查来确保映射在正在被迁移的应用程序的上下文中是恰当的。定制迁移文档还引用没有等同属性因而不能映射到 WebSphere Application Server 的属性。
所生成的定制文档描述了我们对可能的设置以及这些设置的使用情况的理解。在运行 WL2WAS 工具以后,您需要检查一下这些文档以验证所有的映射和推荐在正在被迁移的应用程序的上下文中是否合适,这一点很重要。如果您发现了对所生成的定制迁移文档的内容需要更正或添加,请与我们联系,我们会尝试对这些文档进行更新以使它们与最新技术保持一致。WebSphere Application Server 还有几个额外的属性和配置点,这些属性和配置点由于提供了 WebLogic 没有提供的额外功能,所以在迁移文档中未被引用。
安装 WL2WAS
WL2WAS 只在 Windows® 上被测试过,不过它应该能在其他 Java 支持的平台上运行。
- 安装 WL2WAS 的前提是已经安装了 WebSphere Application Server 版本 4 或 WebSphere Studio Application Developer 版本 4。
- 把分发映像
amf_wl2was.zip 解压缩至您硬盘的一个目录。这个目录以下称为
<AMF_INSTALL_DIR> 。
- WL2WAS 还需要 Lumberjack 记录器, 您可以
从 SourceForge 下载这个日志记录器。下载 Lumberjack 后,解压缩
logging.jar 和
logging.properties 文件并将它们保存在
<AMF_INSTALL_DIR>\runtime 目录中。
- WL2WAS 还需要用于 XML 处理的 Java ApI(Java ApI for XML processing (JAXp))程序,您可以
从 Sun Microsystems 下载它。在下载 JAXp 后,把
jaxp-api.jar、dom.jar、sax.jar 文件和
xercesImpl.jar 文件放在
<AMF_INSTALL_DIR>\runtime 目录中。
- 编辑
<
AMF_INSTALL_DIR>\ amf.bat 文件,使其指向 AMF 安装目录和 Java JDK:
- 使用任意文本编辑器打开
<AMF_INSTALL_DIR>\amf.bat 文件。
- 编辑
%JAVA_HOME% 环境变量,使它指向您的 IBM JRE 1.3 安装目录。WebSphere Application Server 和 Application Developer都安装有可以使用的 JRE。
- 编辑
%AMF_HOME% 值,使其指向
<AMF_INSTALL_DIR> 。
- 编辑
<AMF_INSTALL_DIR>\setWL2WAS_cp.bat 文件,使其指向 WebSphere 4.0 的安装目录,或指向来自 WebSphere Studio Application Developer 4.0 安装的 WebSphere 运行时。
- 如果 WebSphere 4.0 安装在
X:\WebSphere\AppServer 中,那么就将
%WAS_RUNTIME% 设置为
X:\WebSphere\AppServer 。
- 如果 WebSphere Studio Application Developer 4.0 是安装在
X:\Application Developer 中的,那么把
%WAS_RUNTIME% 设置成指向位于
X:\ApplicationDeveloper\plugins\com.ibm.etools.websphere.runtime 中的 WebSphere 运行时 JAR 文件。
如果您正在引用 Application Developer,您可能会看到出错信息“
The input line is too long ”。这是由于
CLASSpATH 环境变量变得太大所致。一个变通方法是将
com.ibm.etools.websphere.runtime 目录复制到驱动器的根目录并将其重命名为一个稍短些的名称,如
was_runtime 。然后改变 BAT 文件中的
%WAS_RUNTIME% 变量来引用这个新位置。
运行 WL2WAS
现在您可以从命令行运行 WL2WAS 了。在运行这个工具时您可以指定几个命令行参数。要检查什么迁移控制器插件可以通过 AMF 被运行,请将目录更改至
<AMF_INSTALL_DIR> 并输入
amf -? 。
-? 选项将为 AMF 框架提供用法信息,这些信息包括对于执行来说什么迁移控制器是可用的。
amf -? 命令的输出应如下所示:
用法:
amf -[options] {[-controller_flag "controller_parms"]}
其中选项包括:
-? 打印这条帮助消息
-? [-controller_flag] 打印控制器的帮助消息
-verbose 启用详细输出
|
可用的控制器包括:
-wl "controller_parms" 将 WebLogic EAR、JAR 或 WAR 压缩文档迁移至 WebSphere EAR 压缩文档。
-tc "controller_parms" 测试 AMF 和控制器框架
|
-verbose 选项启用或禁用向
System.out 的详细输出。如果
-verbose 标志未被包括在命令行参数中,那么所有在迁移中产生的信息都被记录在
<AMF_INSTALL_DIR>\log 目录的报告文件中。
要获取关于可用控制器的具体用法信息,可将
-? 选项与控制器标志结合使用。例如,要获取 Weblogic2WebSphere 控制器的特定用法信息,可输入
amf -? -wl 。其输出看起来应是这样的:
WeblogicMigrator 选项:
-in file_name(s) 要迁移的单一输入 EAR 文件或是 JAR 和/或 WAR 文件列表(它们之间用“;”分隔)
-out file_name 被迁移的 EAR 文件(本项可选)
-wlv {51|60|61} 输入文件的 WebLogic 版本
-wasv {40} 输出文件应作为目标输出的 WebSphere 版本。目前只有 V4 目标被启用
-dbvendor 用于容器管理的持久性的数据库供应商类型。选项有:
{SQL92 | SQL99 | DB2UDBNT_V61 | DB2UDBNT_V71 | DB2UDBNT_V72 | DB2UDBAS400_V4 |
DB2UDAS400_V5 | DB2UDBOS390_V6 | DB2UDBOS390_V7 | INFORMIX_V73 | INFORMIX_V92 |
INSTANTDB_V326 | MSSQLSERVER_V7 | MSSQLSERVER_V70 | MYSQL_V323 | ORACLE_V8 |
SYBASE_V1192 | SYBASE_V12}
-ddl file_name 创建数据库表所使用的 DDL 文件名
|
要运行 Weblogic2WebSphere 迁移控制器,就要指定控制器的标志,即
-wl ,它位于引号中控制器命令行选项之前。例如,若迁移 WebLogic EAR 文件
sampleWL.ear ,请使用下面的命令(都在一行中):
amf -wl "-in C:\Apps\sampleWL.ear
-out C:\Apps\sampleWS.ear
-dbvendor DB2UDBNT_V72
-ddl C:\Apps\sample.ddl
-wasv 40 -wlv 51"
|
这个命令将运行 WL2WAS 迁移控制器插件,这个插件接受
sampleWL.ear 文件,迁移部署描述符,并向
C:\AMF\sampleWS.ear 输出被迁移的 EAR 文件。产生的 EAR 文件将包括原来的 WebLogic 部署描述符文件和新的 WebSphere 部署描述符文件。由这个命令产生的 WebSphere 部署描述符文件为:
ibm-ejb-jar-ext.xmi
ibm-ejb-jar-bnd.xmi
META-INF/Schema/Schema.dbxmi
META-INF/Map.mapxmi
|
WL2WAS 使用说明
- 您可以在命令行参数中指定多个 JAR 和 WAR 以便一次性迁移。输出 EAR 文件将包含所有被迁移的 JAR 文件和 WAR 文件。
- 必须有一个或多个
-in 输入 JAR/WAR/EAR 文件。
-
-out 输出 EAR 文件名是可选的。如果没有指定这个文件名,那么缺省文件名将会被使用。缺省名称是输入文件名加上一个
_IBM 后缀,这个文件将会被置于
<AMF_INSTALL_DIR> 中。
- 还必须有指定输入文件的 WebLogic 版本的
-wlv 标志,且这些标志中必须有 51、60 或 61 中之一以分别与 WebLogic Server 版本 5.1、6.0 或 6.1 相对应。
- 还必须有指定输出的 WebSphere 版本的
-wasv 标志。目前只有 WebSphere 版本 4 受到支持。
- 使用命令行参数中的
-ddl 指定 DDL 文件的名称。提供正确的 DDL 文件对迁移持久性迁移描述符来说是非常重要的。
- 使用命令行参数中的
-dbvendor 把数据库供应商类型设置为以下值之一:
SQL92
SQL99
DB2UDBWIN_V71
DB2UDBOS390_V6
DB2UDBAS400_V4R5
ORACLE_V8
INFORMIX_V92
SYBASE_V1192
MSSQLSERVER_V7
MYSQL_V323
|
- 迁移 WebLogic 持久性文件需要
-ddl 标志和
-dbvendor 标志。这些持久性文件不包含关于列类型、主键等等的任何信息,WebSphere 模式文件也需要此信息。
- DDL 文件必须对应于持久化 EJB 的数据库和表,并且对于生成 WebSphere 4.0 模式文件这是必需的。
- 如果
-ddl 标志和
-dbvendor 标志未被指定为输入参数,那么 WebLogic 持久性迁移将会被跳过。
- 如果
weblogic-cmp-rdbms.xml 文件中存在查找程序查询,它们仍然会被迁移。
评估输出步骤及迁移后的步骤
WL2WAS 总是生成一个 EAR 文件。如果多个 JAR 或 WAR 文件被指定为工具的输入,它们被迁移后生成的文件将会被被打包在命令行上指定的 EAR 文件中,或是作为
<AMF_INSTALL_DIR> 中的缺省 EAR 文件。输出文件除包含新的 WebSphere 描述符文件之外将仍旧包含 WebLogic 描述符。您可以使用 Application Developer 或是 WebSphere 附带的 IBM 应用程序装配工具(IBM Application Assembly Tool(AAT))打开这个 EAR 文件以做些额外的编辑工作并对迁移进行验证。
如上所述,WL2WAS 为每一个被迁移的 EAR、JAR 或 WAR 文件都生成一个日志文件,这些文件包含了有关迁移的重要信息。您需要阅读并理解这些记录文件来验证 WL2WAS 工具是否已将组件正确迁移,这一点很重要。
如果 WL2WAS 迁移 WebLogic 持久性文件,那么可能需要将一些转换器和 composers 应用到某些所生成的映射中。想要了解关于创建并使用转换器和 composer 的说明,请参阅 WebSphere Studio Application Developer 4.0 的在线文档。
WebLogic 查找程序标记在文件
ibm-ejb-jar-ext.xmi 中被迁移到 WebSphere 查找程序标记。查询类型缺省为 EJB QL,原来的查询字符串被原封不动地复制。那么为了完成迁移,您需要手工将查询字符串从 WebLogic QL 迁移为 EJB QL。您可以在 Application Developer 或 AAT 中进行手工迁移。
迁移代码仍然很有必要,因为它是将企业应用程序从 WebLogic 向 WebSphere 迁移的一部分。目前,WL2WAS 并不有助于代码迁移。要了解关于其他迁移步骤的更多信息,请参阅 IBM 红皮书
MigratingWebLogic Applications to WebSphere Advanced Edition V4,SG24-6179-00。
总结
这一系列的三篇文章描述了如何把应用程序从 WebGain VisualCaf 迁移到 Application Developer 以及如何在对 WebLogic 或 WebSphere 服务器进行部署时把 Application Developer 用于正在进行的开发。
第 1 部分描述了迁移的一般注意事项。该文章还描述了如何把 WebLogic 样本应用程序迁移到 WebGain VisualCafÉ 工具中、如何把 Web WAR 应用程序从 VisualCafÉ 迁移到 Application Developer 中以及如何使用 WebLogic 服务器或嵌入的 WebSphere Application Server 部署和调试应用程序。
第 2 部分描述了如何把 Enterprise Java Bean (EJB) 应用程序从 VisualCaf 迁移到 Application Developer 以及使用可下载的 WL2WAS 工具将 EJB 部署描述符转变为 WebSphere 部署描述符(同时保持 WebLogic 版本)。
第 3 部分(也就是本文)详细描述了在第 2 部分中使用的可下载的工具(应用程序迁移框架和 WL2WAS 插件)来处理 WebLogic 部署描述符并将其转换成 WebSphere 部署描述符,特别是用来转换更加复杂的 EJB 部署描述符。
新闻组
参考资料
作者简介  | |  |
Ann Black现在是 IBM 软件小组的 WebSphere 开发人员。她是一位通过了 Sun Java 2 认证的程序员,过去两年中,她致力于开发 J2EE 技术和相关支持软件。您可以通过
AnnBlack@us.ibm.com与她联系。
|
 | |  |
Mihaela Herescu 是 IBM 软件小组的软件工程师,现在是 WebSphere SWAT 小组成员。在过去两年中,她致力于 J2EE 技术的工作,涉足于 WebSphere 顾问和工具开发工作。您可以通过
olteamh@us.ibm.com与她联系。
|
 | |  |
Barry Searle 目前是 WebSphere Studio Application Developer 的迁移小组负责人。他已在 IBM 加拿大实验室工作了十余年,曾涉足各种应用程序开发工具的领域,是一位专业工程师。在此之前,他已从事了多年的命令与控制系统的开发和领先的复杂通信开发项目工作,具有多年的业界工作经验。
您可以通过
searle@ca.ibm.com与他联系。
|
 | |  |
Ellen McKay 是 IBM 加拿大有限公司的信息开发人员。她撰写了 WebSphere
Studio Application Developer 的在线帮助和在线发布。您可以通过
ecmckay@ca.ibm.com与她联系。
|
对本文的评价
|