从 WebSphere V6.1 或更早版本迁移应用程序时使用版本为 2.4 或更低版本的 Web 模块

如果正在从 WebSphere Application Server V6.1 或更低版本迁移版本为 2.5 或更高版本的 Web 模块,那么此规则会标记这些 Web 模块。

WebSphere Application Server V7 中已引入了对 Web 模块 V2.5 的支持。 当时,绑定和扩展的格式已从 xmi 更改为 xml 格式。 从 V7 开始,无法在版本为 2.5 或更高版本的 Web 模块中正确地处理 xmi 格式化的绑定。

WebSphere Application Server V6.1 和更低版本允许安装具有版本为 2.5 的 web.xml 的 Web 模块。 如果应用程序未尝试使用更高规范级别所提供的额外功能数,那么应用程序在运行时不会发生错误。 这可能会导致已部署的应用程序无法在更高版本的 WebSphere 上正确地运行。

例如,如果在 WebSphere Application Server V6.1 中安装了版本为 2.5 的 Web 模块,并且在部署时定义了虚拟主机,那么会成功部署应用程序。 虚拟主机定义会保存到应用程序的绑定 xmi 文件(而不是 ibm-web-bnd.xmi)。 如果后续将该 Web 模块迁移到 WebSphere V7.0 或更高版本,那么服务器会期望绑定信息存储到 ibm-web-bnd.xml 文件(而不是以 xmi 格式进行存储)。 WebSphere Application Server 会保持向后兼容,因此如果 Web 模块的版本为 2.4,那么 ibm-web-bnd.xmi 将由 WebSphere V7 或更高版本正确地解释。

Web 模块版本和绑定或扩展文件类型的这种不匹配可能会导致在服务器基本部件和 Network Deployment 环境中发生问题。 某些可能的错误情况包括:

从 V6.1 和更低版本迁移时,将标记具有下列内容的 web.xml:

<web-app id="WebApp_Id" version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
...
</web-app>

应该将 Web 应用程序版本修改为 V2.4。 自动修复将修改版本 和模式信息,如下例所示:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
...
</web-app>

有关不中已移除的功能同 WebSphere Application Server 版本所支持的 Java EE 规范级别的其他信息,请参阅 Programming model APIs and specifications