Donald Vines & Andy Hoyt: Application Migration 工具如何将应用程序更轻松地迁移到 WebSphere Application Server
2010-05-21 00:00:00 来源:WEB开发网使应用程序分析和迁移更轻松
IBM WebSphere Application Server Migration Toolkit 的 Application Migration 工具能帮助您轻松地将应用程序从一个源应用服务器迁移到 WebSphere Application Server V7.0 上。源应用服务器现在支持 WebLogic Server 8.1 和 WebLogic Server 9.2。Application Migration 插件在一个导入的 EAR 文件上工作。这个工具扫描 JSPs、Java™ 源代码和部署描述符以发现移植问题,并在 Eclipse IDE 的 Problems 视图中报告这些问题。您可能遇到的大多数移植问题都可以由这个工具来确定,在很多情况下,这个工具都会给您提供一个快速修复方案来解决它们。
如果您对这个工具不熟悉,本文有 Application Migration 工具功能的简介,以及一些下载和其他资料的指引,帮助您开始使用。
这个工具是什么?
Application Migration 工具是努力使 IBM Rational® Software Analyzer V7.1 能够帮助将一个应用程序从支持的源应用服务器迁移到 WebSphere Application Server 的产物。Rational Software Analyzer 是一个简单而功能强大的工具,能自动进行软件分析,提供更高质量的软件。要完成这项工作,Rational Software Analyzer 使用了大量规则,同时它还允许创建自定义规则,以便适应各种具体环境和目的。
为实现那个目的,创造了用于发现代码迁移问题的自定义规则,这些规则为工具提供了解决许多此类问题的快速修复方案。所有这些自定义规则都捆绑在一个 Eclipse 3.4.2 插件中,您可以免费下载(还无需任何额外许可)。
该插件在导入的 EAR 文件上运行。它对 Eclipse 工作区内的 Java 源代码、JSPs 和部署描述符进行解析,并在 Problems 视图中报告迁移问题。因为这个工具是在源文件、而不是类文件上运行,在运行工具前,您无需在 WebSphere Application Server 下对应用程序进行全新编译。
当分析完成以后,在 Problems 视图中右键单击各个独立结果会为您提供解决问题的选项:
View Result 会打开一个编辑器,显示触发规则的源文件。出错的那一行将高亮显示,违反规则的图标就显示在这一行的旁边。
Quick Fix 将执行迁移,这个迁移会修改受影响的 Java 代码、JSP 页面或者部署描述符。快速修复方案也许会直接改变文件,或者它会显示完成修改所需的步骤。
Quick Fix Preview 支持在任何更新实际执行之前,并排对比原始代码和修改后的代码。
Ignore Result 无需进行文件修改就能从清单中删除规则。
Quick Fix All 会解决一个给定规则的所有问题。
接受快速修复方案,还是用自己的方法,在这方面您掌握绝对的决定权。如果您不想一步一步执行,那么您还有一个选择:接受全部修改。当您完成修改审查以后,您就可以从 Eclipse 中导出 EAR 文件,将其部署到 WebSphere Application Server。
这款插件是一个基于知识的迁移助手。这就意味着,即便开发人员没有源应用服务器或者 WebSphere Application Server 方面的丰富知识,也能够成功地执行迁移。
这个工具如何运作?
如果将要迁移的应用程序并不在 Eclipse 中,那么您就必须在执行迁移之前,将 EAR 文件导入 Eclipse。如果在 EAR 中的 Java 源文件和 JSP 源文件不可取得,那么这个工具就只能运行规则来迁移部署描述符文件。如果在 EAR 文件中的源文件可用,那么该工具就运行规则来迁移:
Java 源文件
JSP 源文件
部署描述符文件
类路径审查
该插件包括用于解析 Java 源文件、JSP 源文件以及部署描述符文件的解析器,还有一系列的规则,用于检测专有类、APIs、常量的使用,以及与 Java EE 规范在产品一致性方面的任意差异。这些规则在查找这些文件中的移植问题的主要根源方面是非常有效的。
下面的小节列出了针对上述文件类型的一些规则和快速修复方案
Java 源文件
插件是根据 .java 的扩展名来检测 Java 源文件的。这包括 servlets、EJB 组件,以及 Java 类。该工具解析工作空间中的所有 Java 文件,运用规则来查找任何移植问题,并同时显示问题和快速修复方案。
表 1. Java 源文件
规则 | 快速修复方案 |
不使用 WebLogic RMI API 调用。 检测 WebLogic 专有 RMI 类和 APIs 的引用。 | 修改代码来使用 Java 标准 RMI 类和 APIs。 |
不使用 WebLogic 特定的 JNDI 名称。 扫描 Java 文件检测 WebLogic 专有 JNDI 名称值的使用: java.naming.factory.initial = weblogic.jndi.WLInitialContextFactory java.naming.provider.url = t3://localhost:7001 | 修改代码来使用 WebSphere Application Server JNDI 名称,或者使用可移植的 JNDI 查询:
java.naming.factory.initial = com.ibm.websphere.naming.WsnInitialContextFactory java.naming.provider.url = corbaloc:iiop:localhost:2809 |
不使用 WebLogic 专有的启动类或者关闭类。 查找实现 WebLogic 启动和关闭接口的类。 | 转换这些类来使用标准 javax.servlet.ServletContextListener 接口,并将其注册到应用程序的 web.xml 文件中。 |
不使用不兼容的 UserTransaction 查询名称。 查找 BMT beans 和 servlets 中对 ctx.lookup(“javax.transaction.UserTransaction”)的引用。(WebLogic 允许这些不兼容查询,而 WebSphere Application Server 则不允许。) | 如果这些问题发生在一个 BMT bean 中,那么快速修复方案就对这个 bean 进行转换来使用 ctx.getUserTransaction()。如果问题发生在一个 servlet 或者客户机代码中,那么,快速修复方案就会对它进行转换来使用 JNDI 查询: ctx.lookup(“java:comp/UserTransaction”) |
不使用不匹配的抛出子句。 查找 EJB bean 方法中抛出子句之间的不匹配,以及本地和远程接口间的不匹配。(WebLogic 允许这种不合格的不匹配,而 WebSphere Application Server 则不允许。) | 添加任何缺失的异常,并将任何额外的异常都移动到 EJB bean。本地和远程的接口不改变。 |
不使用 WebLogic 专有 Apache 包。 标记对 WebLogic Apache 专有类和能够映射到开源 Apache 类和 APIs 的 APIs 的引用。 | 修改代码来使用开源 Apache 类和 APIs。您需要下载适合的 Apache Xerces .jar 文件,并将其包括到您的应用程序中。 |
JSP 源文件
这款插件通过 .jsp 扩展名来检测 JSP 源文件,解析工作空间中的所有此类文件,并应用规则来查找移植问题,提供快速修复方案。要注意的是,JSP 源文件可以像 Java 源文件那样,调用不可移植的类、APIs,以及常量。插件对这些移植问题进行检测,并按照之前所述方式进行处理。
表 2. JSP 源文件
规则 | 快速修复 |
避免为 JSP 片段使用 .jsp 扩展名。 查找 JSP 片段。有 .jsp 扩展名的片段文件将会被标出,扩展名为 .jspf 的则不会。根据 Java EE 规范,所有 JSPs 都必须进行编译;JSP 片段则不必。 | 修改文件名及其所有使用重构对话框的引用。 |
使用 tag/attribute 名称的正确大小写。 报告 JSP 中任何大小写有误的 tag/attribute 名称。根据 XML 规范,tag/attribute 名称是大小写敏感的;WebSphere Application Server 对此有强制要求,而 WebLogic 则不然。 | 修改受影响的 JSP 源文件中的大小写,来匹配 tag 库中定义的大小写。 |
部署描述符文件
这款插件通过它们的文件名(例如, weblogic.xml、weblogic-ebj-jar.xml、weblogic-webservices.xml,等等)来检测厂商特定的部署描述符文件。和其他文件一样,插件解析部署描述符,应用规则来查找问题,并提供快速修复方案。
表 3. 部署描述符文件
规则 | 快速修复方案 |
使用 EJB 引用的标准部署描述符。 WebLogic 部署描述符(weblogic.xml)可以包含 EJB 引用,将会话 beans 映射到它们的 JNDI 名称。 | 将 weblogic.xml 文件中定义的所有 EJB 引用移动到标准 web.xml 部署描述符。 |
使用资源引用名称的标准部署描述符。 WebLogic 特定的部署描述符(weblogic.xml)可以包括资源引用,将数据资源映射到他们的 JNDI 名称。 | 将 WebLogic 特定的部署描述符中定义的所有资源引用移动到标准部署描述符。 |
不使用 WebLogic Web 服务部署描述符。 查找 Web 服务部署描述符,特别注意查找以下内容是否存在: web-services.xml weblogic-webservices.xml 和同一文件夹中的 Java EE 部署描述符(webservices.xml)。 | 根据从部署描述符中收集来的信息,产生一个使用 WebSphere Application Server ANT 任务来产生适当 Web 服务工件的 ANT 脚本。如果服务需要,该修复方法还会产生 Service Endpoint Interface(SEI),并将其添加到项目类路径中。这样您就可以运行 ANT 脚本来迁移 Web 服务。 |
类路径审查
类路径审查会验证类路径是否设置合理。
表 4. 类路径审查
规则 | 快速修复方案 |
使用类路径的 MANIFEST.MF。 查找 EAR 文件的 APP-INF 文件夹中的类和库。EAR 文件的 WebLogic 扩展名会将那些类和库显式添加到类路径。 | 通过更新模块的 MANIFEST.MF 文件的类路径条目,将一个条目添加到每个受影响模块的类路 |
工具使用
使用 Application Migration 工具的详细步骤不在本文范围之内。但是为了帮助您开始使用,图 1 显示了该工具的一些关键特性。图中显示了 Application Migration 工具将一个 WebLogic Startup 类迁移到 WebSphere Application Server 的屏幕截图。在该图中:
Java Source Compare 面板显示了一个快速修复方案审查特性的例子。如果应用快速修复方案,面板左半边就显示代码,右半边就显示未应用修复方案的原始代码。
在右列中的 Help 选项卡解释了应用的规则和快速修复方案。
Java Source Compare 面板显示了您可以选择用于迁移代码的可用选项。选项包括:
查看已扫描文件。
用快速修复方案修改文件。
用快速修复方案审查来预览快速修复。
忽略结果。
修复该规则的所有项。
图 1. Application Migration 工具分析结果
查看原图(大图)
如果您正在从事将应用程序迁移到 WebSphere Application Server 方面的工作,或者将来您将要进行应用程序迁移工作,请下载并试用 Application Migration 工具。您可以找到一个入门向导来帮助您,还有一个论坛能够让您分享案例和收集反馈。
- 中查找“Donald Vines & Andy Hoyt: Application Migration 工具如何将应用程序更轻松地迁移到 WebSphere Application Server”更多相关内容
- 中查找“Donald Vines & Andy Hoyt: Application Migration 工具如何将应用程序更轻松地迁移到 WebSphere Application Server”更多相关内容
- 上一篇:使用 Problem Diagnostics Lab Toolkit 增强故障排除技能
- 下一篇:Soloman Barghouthi: 用于取消恶意或未授权数据库查询的技术
更多精彩
赞助商链接