本节介绍已知的升级实用程序问题和相应的解决方法。
从 Application Server Enterprise Edition 8 升级到 Application Server Enterprise Edition 8.1 时,不会直接升级在自定义路径而非 install_dir/domains 目录中创建的域。
如果运行升级实用程序并将 install_dir 标识为源安装目录,升级进程只升级在 install_dir/domains 目录下创建的域。在其他位置创建的域不会被升级。
启动升级进程前,将所有域目录从不同位置复制到 install_dir/domains 目录中。
此问题已在多个 Linux 系统上出现,是 Java Desktop System 2 最常见的问题,而且在 Red Hat 分发中也发现了此问题。
在最终安装程序屏幕上单击“启动升级工具”按钮后,安装程序无法启动升级工具以完成升级过程,并且无限期挂起,而不会返回命令提示符。
如果使用命令行安装模式来运行就地升级,将不会遇到此问题。
如果您以 GUI 模式运行就地升级并且遇到此问题,请通过在启动安装程序的终端窗口中按 Ctrl+C 组合键来退出安装程序。
使用以下命令从终端窗口启动升级工具:
install_dir/bin/asupgrade --source install_dir/domains --target install_dir --adminuser adminuser --adminpassword adminpassword --masterpassword changeit |
adminuser 和 adminpassword 的值应与要升级的安装所使用的值匹配。
在升级工具完成升级过程后,您还可以启动浏览器并输入以下 URL 来查看“关于”页面:
file://install_dir/docs-ee/about.html |
如果您还选择了用于注册产品的安装选项,请点击产品“关于”页面上提供的指向注册页面的链接。
将以下条目从目标 domain.xml 删除(在升级后),然后重新启动服务器:
<jvm-options>-Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot} /config/keystore.jks</jvm-options>- <jvm-options>Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot} /config/cacerts.jks</jvm-options>
升级工具将覆盖所有服务器实例的任何现有的 index.html 文件。
在运行升级工具之前,备份现有的 index.html 文件,稍后恢复这些文件。
从 Application Server 8.0PE 升级到 9.1 时,会抛出错误,说明服务器没有名为 null 的系统连接器,并且出现 sbs-manual 中所示的无效用户信息。即使在更改硬编码值之后,也会出现相同的错误消息。出现这种情况是因为 8.0 中的 domain.xml 在 9.1 中已更改。
仅在从 8.0 PE 升级到 9.1 时才会遇到此错误。解决方法是先升级到 8.1、8.2 或 9.0,然后升级到 9.1。
执行就地升级时,如果源中有多个域,则即使升级过程被中止,安装程序也会调用升级工具。以 GUI 模式进行调用时,便会出现这种情况。
以 CLI 模式进行就地安装,当安装过程结束时,在安装程序提示您选择升级工具时退出。这不会删除域目录中的任何域。应该从 bin 目录手动调用升级工具。
以 GUI 模式进行就地安装时,对域根目录中的域进行备份,以免在安装过程中丢失任何域。当安装过程结束时,在安装程序提示您调用升级工具时退出。如果域已经丢失,请将所有备份域复制到域目录。手动启动升级工具以执行升级。
从 AS 8.2 升级到 9.1 时,9.1 安装中不会继承 8.2 安装中的主密码。这随后会导致在下次管理登录时出现验证错误。
Application Server 9.1 中的默认管理密码为 changeit。从 8.2 升级之后,要在登录到 9.1 服务器时避免出现问题,请执行以下三种操作之一:
在执行升级之前,将 8.2 管理密码更改为 changeit。
在升级过程中,请勿接受默认管理密码,而是明确输入要使用的密码。
使用默认密码登录到 9.1,然后立即更改此密码。
升级工具无法升级数据库或任何形式数据库表,以后也不会支持此类升级。将传输资源引用配置,Application Server 应该继续使用原始数据库和表。如果要更改数据库或传输数据库表,请使用可用于使用中的数据库的工具。
执行以下步骤以迁移 MQ 存储:
请在关闭 AS 8.2 及运行 AS9.1 升级工具之后,首次启动 AS9.1 之前执行以下步骤。如果已在 IFR 安装/升级之后启动了 AS 9.1,请勿执行这些步骤,因为它们可能会破坏 MQ 消息存储的稳定性。
将整个 domains/domain1/imq 子目录从 AS 8.x domains 目录复制到 AS 9.1 domains 目录。
确保目录和文件归要运行 Application Server 的用户所有。
执行上述步骤之后,便可启动 Application Server 9.1,并且 Application Server 9.1. domains 目录中的 MQ 存储将从其 JES5 U1 格式迁移到 MQ 4.1 格式。请注意,执行此过程或者在 AS 9.1 启动 MQ4.1 时,将保留 AS 8.2 下的原始 JES5 U1 MQ 存储,不对其进行修改。
从 JES5 (Application Server 8.2) 升级到 Application Server 9.1 时,Portal Server Community 样例不再起作用,并且会抛出许多 javax.faces.application.ApplicationFactory 错误。
如果使用 JES5 Portal Server 安装 Application Server 8.2,则不支持从 Application Server 8.2 升级到 9.1。在 Application Server 升级到 9.1 之前,需要将 Portal Server 升级到 Java ES 5 Update 1。
在 Linux 平台上,使用 IFR 安装程序从 Application Server 8.2 升级到 9.1 时,如果选择“安装 JDK”选项,则在成功完成安装之后,大多数 JES 组件停止运行。
此问题仅影响在 Linux 平台上进行的 Application Server 9.1 IFR 安装,并且仅当选择“安装 JDK”选项时才会产生影响。要解决此问题,请在安装之后,立即将 /usr/jdk/entsys-j2se 手动链接到 /usr/java/jdk1.5.0_12 目录。
在 Windows 上执行 Application Server 9.1 IFR 升级时,就地备份未正确与 asupdate.bat 窗体值集成。具体而言,如果在 ASupdate.bat GUI 屏幕中输入错误的信息,然后单击“下一步”,则升级安装程序将尝试检测它是否为就地升级。如果是,则在升级之前,会将 domain1 移至备份目录。继续升级时,由于信息不正确,会显示错误消息。当您尝试立即更正此错误时,会抛出路径错误,因为 domain1 已被移动。
将源目录更改为 {current source path}/backup 中的 domain1_ {timestamp} 目录,或者使用“取消”按钮退出安装程序并再次启动。
(仅 Windows)如果在程序目录路径中使用特殊字符或 DOS 样式的短名称安装了早期版本的 Application Server,则在以后仍使用这些目录路径名称就地升级到 Application Server 9.1 时,会导致升级失败。
例如,如果将 Application Server 8.2 安装在以下目录中:
C:\Program Files (x86)\dirs\appserver c:\progra~2\dirs\appserver |
尝试执行就地升级到 9.1 将失败,因为安装程序无法将短名称或特殊字符转换为所需的长名称格式。
安装 Application Server 时,强烈建议路径名称不要包含特殊字符或 DOS 样式的短名称截断(例如 progra~2),因为它会妨碍后续的升级安装。如果存在这样的安装,请在升级之前使用长路径名称重新安装,或者在全新的目录中安装新版本的 Application Server。
升级 Application Server 之后,<jsp:forward> 标记在 Authenticate.jsp 中未按预期那样发挥作用。<jsp:forward> 调用在服务器日志中生成一个错误,并在 WebUI 中显示空白页。问题在于 Authenticate.jsp 中的 <jsp:forward> 需要 <jsp:forward page="${redirectPage}"/> 之类的页面属性,但是,正在被传送的值却是相对路径(例如 /registry/thin/{pagename}.jsp),即使 Authenticate.jsp 是纯 JSP 页,此类路径也无效。
完成 Application Server 升级之后,请使用 asadmin 工具运行以下命令,以在 domain.xml 中设置 <auth-realm>:
转至 <appserver9.1-install-dir>/bin 并运行以下命令:
./asadmin delete-auth-realm --host localhost --port 6489 certificate |
这将删除旧的 auth-realm 证书(如果存在)。
运行以下命令:
./asadmin create-auth-realm --terse=false --echo=true --interactive=true \ --user admin --host localhost --port 6489 --classname \ com.sun.enterprise.security.auth.realm.certificate.CertificateRealm \ --property assign-groups=have.client.cert certificate |
这将创建具有 assign-groups 属性的新的 <auth-realm>。
停止并重新启动 Application Server registry 域。
在非英语语言中运行 asupgrade GUI 时,没有针对所选的非英语语言对 GUI 联机帮助进行本土化。
目前尚无解决方法。已计划使用所有非英语目标语言对联机帮助进行本地化。