故障诊断

请参阅下表以了解一些常见问题及其相应的解决方案。

有关故障诊断的其它资源

参阅 Rational® Developer 的自述文件。可以从开始菜单(在 Windows® 中)或 Rational Developer 的安装启动板获得该文件。

问题解决方案

问题 解决方案
不能启动 WebSphere® Portal V5.x 测试环境
  • 确保安装了 WebSphere Portal V5.x 测试环境。检查安装日志以验证安装是否成功。WebSphere Portal V5.0 测试环境的安装日志为 workbench_installdir\runtimes\portal_v50\log\wpsinstalllog.txt
  • 更改服务器配置:仅当 WebSphere Portal V5.x 测试环境不能以调试方式启动时,此解决方案才适用。在服务器配置中,确保在服务器页面中选择了在调试方式下启用热方法替换复选框。为此,执行下列步骤:
    1. 在“服务器”视图中,双击在调试方式下未能启动的 WebSphere Portal V5.x 测试环境以打开其服务器配置。
    2. 选择概述页。
    3. 选择在调试方式下启用热方法替换复选框。
    4. 按 Ctrl+S 以保存更新后的服务器配置。
  • 仅适用于 Linux™:更改 WebSphere Portal 数据库的访问许可权。因为 WebSphere Portal 的局限性,WebSphere Portal V5.x 测试环境仅可供一个用户使用。可通过对 WebSphere Portal 数据库开放读、写和执行许可权来允许其他用户使用服务器。要更改访问许可权,输入下列命令:
    1. cd /opt/PortalUTE/PortalServer/cloudscape/
    2. chmod -R 777 wps50
    或者,您可以通过卸载并重新安装 WebSphere Portal V5.x 测试环境来更改可以使用服务器的用户。
  • 仅适用于 Windows:验证 Windows 用户是否为 Administrator。否则,作为 Administrator 登录至 Windows 并运行 WebSphere Portal V5.x 测试环境。
  • 要运行或调试 Struts portlet,并且 portlet 具有静态(非 JSP)或 XML 内容,则需要启用代码转换(请参阅启用代码转换)。
  • 要运行或调试引用其它 Java™ 或 EJB 项目的 portlet 项目,请参阅引用其它项目
  • 要运行或调试使用应用程序库文件的 portlet 项目,请参阅定义本地服务器以测试 portlet 中有关共享库的部分。
  • 检查 WebSphere Portal 的日志以确定问题所在。请参阅日志文件或启用控制台记录,如定义本地服务器以测试 portlet 中所述。
不能对 WebSphere Portal V5.x 测试环境创建服务器。
  • 确保已安装想要使用的 WebSphere Portal V5.x 测试环境。仅当已安装了测试环境,才能创建 WebSphere Portal V5.x 测试环境服务器。
  • (仅适用于 WebSphere Portal V5.1)确保您已经按配置 WebSphere Portal 5.1 测试环境中所述配置了首选项。
导入、导出或部署的门户网站发生 JSP 或 Java 编译错误 如果发生以下任何情况,依赖于某些类的外部 JAR 文件的 JSP 文件或 Java 类可能无法编译:
  • JSP 文件或 Java 类是从远程门户网站服务器导入的,并且使用远程服务器的 WebSphere_install_directory/libPortal_server_install_directory/shared/app 目录中的外部 JAR 文件。
  • JSP 文件或 Java 类是从 Rational Developer 项目导出的,该项目对 JAR 文件具有访问权,并且安装在对 JAR 文件没有访问权的远程门户网站服务器上
  • JSP 文件或 Java 类是从 Rational Developer 项目部署的,该项目对 JAR 文件具有访问权并且目标门户网站服务器对 JAR 文件没有访问权

可能会因为导入、导出和部署操作对引用的 JAR 文件不起作用而发生这种情况。

要解决此问题,在门户网站项目使用外部 JAR 文件时,这些 JAR 文件需要对服务器可用。
  • 要使 JAR 文件对门户网站项目可用,将这些 JAR 文件复制到开发机器并将它们添加至门户网站项目的 Java 构建路径。要设置 Java 构建路径,遵循下列步骤:
    1. 从“项目资源管理器”视图中突出显示该项目并选择属性
    2. 在左窗格中,选择 Java 构建路径
    3. 在右窗格中选择选项卡。
    4. 添加被引用的 JAR。
    5. 单击确定以保存配置。
  • 要使 JAR 文件对 WebSphere Portal 测试环境可用,将这些 JAR 文件复制到开发机器并将它们添加至测试环境服务器的 workbench_install_directory/runtimes/portal_v5X/shared/app 目录。
  • 要使 JAR 文件对远程门户网站服务器可用,在导出或部署门户网站项目后手工将所需的 JAR 文件复制到远程门户网站服务器系统。
WebSphere Portal V5.x 测试环境中的 java.lang.NoClassDefFoundError 当使用本地调试来测试或调试 portlet 应用程序并且该 portlet 应用程序需要使用库文件或引用其它项目时,需要在服务器上能够使用它们。参阅定义本地服务器以测试 portlet引用其它项目中有关共享库的部分。
在“WebSphere Portal V5.0 测试环境”服务器上运行或调试 portlet 时,代码转换功能没有正确运行。 缺省情况下,在 WebSphere Portal V5.0 测试环境中将禁用代码转换功能。您需要启用它。请参阅启用代码转换
不能使用 WebSphere Portal V5.0 测试环境启动 WML 设备仿真器。 要使用 WebSphere Portal V5.0 测试环境在 WML 设备仿真器中运行或调试 portlet,需要启用代码转换。请参阅启用代码转换。还需要使用定义 Web 浏览器和设备仿真器中的指示信息来定义设备仿真器程序。
不能在 WebSphere Portal V5.x 测试环境中运行个性化 portlet 项目。 要运行或调试个性化 portlet 项目,您需要使用在远程服务器上运行的 WebSphere Portal 服务器连接和 WebSphere Portal。
启动 Rational Developer 时发生无法恢复工作台错误。 重新启动 Rational Developer 并指定新的目录作为工作空间。如果您以前选择了将此工作空间用作缺省工作空间并且不再显示此对话框,并且未出现允许您指定工作空间目录的对话框,则使用 -data 参数来启动工作台。从命令行:


对于 Windows

cd workbench_installdir
rationalsdp.exe -data workspace_directory


对于 Linux

cd workbench_installdir
rationalsdp.sh -data workspace_directory

其中 workbench_installdir 是安装 Rational Developer 的目录,并且 workspace_directory 是您想要使用的新工作空间目录

为 WebSphere Portal 4.2 开发的 Portlet 在 WebSphere Portal 5.x 上不能正常工作。 仅当这些 portlet 是由 Portal Toolkit 5.0.2 或更早版本开发的时候,此解决方案才起作用。
要修正这种情况,执行下列其中一项操作:
  • 从 Portlet 项目中删除 /WEB-INF/tld/portlet.tld 文件。
  • 遵循下列步骤来更改 Portlet 项目的 Portlet API 级别
    1. 突出显示“项目资源管理器”视图中的 Portlet 项目。
    2. 右键单击并选择属性 > Portlet API
    3. 使用下拉列表选择 Portlet API 级别
    4. 选择确定以保存更改。

为 WebSphere Portal V4.2 编写的大多数 portlet 在 WebSphere Portal V5.x 中将按原样运行。一些 Portlet API 4.2.x 现在已被标记为“建议不要使用”,但在 WebSphere Portal V5.x 上仍然可用。但是,各个 WebSphere Portal 版本之间的portlet.tld 文件是不同的。在 Portal Toolkit 5.0.2 或更早版本中的 portlet 项目中包括此文件。

在测试环境中运行(测试)或调试 portlet 失败。启动在服务器上运行在服务器上调试任务之后,测试环境处于正在启动状态,但它已经终止了。portlet 在 JSP 文件或 Java 代码中不存在验证错误,并且部署描述符也是正确的。 确保在工作台首选项中选择了自动构建。要检查该值,选择窗口 > 首选项 > 工作台
在远程系统上部署或测试 Portlet 失败。可能是执行下列任一任务时失败:
  • 使用“部署”向导部署 portlet
  • 使用“服务器连接”服务器运行或调试 portlet 项目
  • 部署使用 portlet 项目的门户网站项目
  • 运行或调试使用 portlet 项目的门户网站项目。
确保服务器配置正确。请参阅网络注意事项
在 WebSphere Portal V5.x 测试环境服务器上运行或调试项目时,“控制台”视图中的内容被截断。 确保在工作台首选项中未选择限制控制台输出。要检查该值,选择窗口 > 首选项 > 运行/调试 > 控制台
WebSphere Portal V5.1 测试环境与两个或更多个 JSR 168 portlet 项目相关联时,该测试环境不启动。 当两个或更多 JSR 168 portlet 项目与服务器相关联并且 portlet 部署描述符中的 <portlet-app> 元素上没有标识属性时,WebSphere Portal V5.1 测试环境无法启动。如果标识属性不是唯一的,则可能发生同一问题。要解决此问题,编辑 portlet 部署描述符(portlet.xml),并将具有唯一值的标识属性添加至 <portlet-app> 元素。在编辑 portlet 部署描述符时使用“源代码”页进行此更改。
将 JSR 168 portlet 项目部署至 WebSphere Portal V5.0 服务器这一操作仅一次有效。 使用 WebSphere Portal Server 上的 WebSphere Portal 管理页面除去(卸载)想要部署的 JSR 168 portlet,对门户网站服务器应用修订 PQ92087,然后使用 Rational Developer 再次部署 portlet。
导入 portlet WAR 文件时,“目标服务器”列表中没有显示任何 WebSphere Portal Server。 检查 WAR 文件的 WEB-INF 目录中的 Web 部署描述符(web.xml)的 DOCTYPE 条目。正确的语法为:
<!DOCTYPE web-app 
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" 
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
其中字符串 web-app_2_2.dtd 定义 WAR 文件的 Web 级别。字符串 web-app_2_2.dtd 表示 Web 级别 2.2(J2EE 规范级别 1.2)。字符串 web-app_2_3.dtd 表示 Web 级别 2.3(J2EE 规范级别 1.3)。

一个常见的错误是在版本号中使用了“.”而不是“_”字符。例如,web-app_2.2.dtd 而不是 web-app_2_2.dtd

如果尚未导入 WAR 文件,遵循下列步骤更正该问题:
  1. 更正 web.xml 文件中 DOCTYPE 条目的语法。
  2. 重新打包 WAR 文件。
  3. 导入 WAR 文件。
如果已经导入 WAR 文件,遵循下列步骤更正该问题:
  1. 通过遵循下列步骤修正 Web 部署描述符中的 DOCTYPE 条目:
    1. 在“项目资源管理器”视图中,双击 portlet 项目的 Web 部署描述符。Web 部署描述符编辑器打开。
    2. 源代码选项卡上,更正 DOCTYPE 条目的语法。
    3. Ctrl+s 以保存更改。
  2. 通过遵循下列步骤更改 portlet 项目和 EAR 项目的目标服务器
    1. 在“项目资源管理器”视图中,突出显示 portlet 项目。右键单击并选择属性。出现“属性”对话框。
    2. 在左面板中,突出显示服务器
    3. 在右面板中,将目标运行时更改为 WebSphere Portal Server。单击确定
    4. 对于相关联的 EAR 项目,重复上述步骤。

对象标识重复

部署或导出门户网站项目失败。一部分错误消息指出在 PAGE_INST(OID) 上定义的主键约束发生了 DuplicateKeyException。

当从 WebSphere Portal V5.1 服务器中删除一个对象时,该对象虽然被标记为已删除,但是实际上并未立即除去它。如果稍后又将该对象导出或部署至远程门户网站“服务器连接”服务器,就可能会发生“对象标识重复”这种错误。

在下列情况下可能会产生此问题:
  • 第一种情况:
    1. 导入门户网站项目
    2. 删除门户网站项目中的页面
    3. 部署或导出门户网站项目
    4. 在门户网站项目中使用完全相同的唯一名称来创建页面
    5. 部署或导出门户网站项目
  • 第二种情况:
    1. 导入门户网站项目
    2. 删除 WebSphere Portal Server 上的页面
    3. 将门户网站项目部署或导出至 WebSphere Portal Server
  • 第三种情况:
    1. 导入门户网站项目
    2. 删除 WebSphere Portal Server 上的页面
    3. 再次导入门户网站项目,但是不选择覆盖时删除项目这一选项。
    4. 将门户网站项目部署或导出至 WebSphere Portal Server

要解决此问题,可以将WebSphere Portal 配置为立即除去对象,或者使用 XML 配置界面运行单独的清除任务。有关指示信息,请参阅 WebSphere Portal Product Documentation 中的 Administering > Delayed cleanup of deleted portal pages 这一节。

标签和页面的高速缓存

在远程“服务器连接”服务器上运行 WebSphere Portal V5.1 门户网站项目时,不立即出现对标签和页面的结构所作的更改。

WebSphere Portal V5.1 服务器将对页面内容进行高速缓存。当在远程服务器上运行门户网站项目时,您可能会在长达 10 分钟内看不到对页面内容所作的更改,10 分钟是高速缓存的缺省生命周期。

要更改高速缓存生命周期,可更改远程门户网站服务器上 Portal_installation_directory/shared/app/config/services/CacheManagerService.properties 文件中 cacheinstance.com.ibm.wps.model.content.impl.ResourceCache.lifetime 参数的值。

该值是保持高速缓存的秒数。如果值为 0-1,则表示没有超时。

如果更改标签和页面的结构之后更改仍不出现在 Web 浏览器中,则使用 Web 浏览器明确注销 WebSphere Portal 然后再次登录。登录之后将显示这些更改。注意,只是简单地关闭 Web 浏览器窗口可能不起作用。每次发布更新后的门户网站项目时都需要执行先注销再登录这一步骤。

在使用 WebSphere Portal V5.0 的某些配置中,在使用远程“服务器连接”服务器来运行或调试项目时,对门户网站或 portlet 项目所作的更改不会自动显示在 Web 浏览器中。
可以采用两种方法来处理此问题:
  • 使用 Web 浏览器明确注销 WebSphere Portal 然后再次登录。登录之后将显示这些更改。注意,只是简单地关闭 Web 浏览器窗口将不起作用。每次发布更新后的门户网站项目时都必须先注销再登录。
  • 或者,配置 Rational Developer 以使用外部 Web 浏览器。为此,选择窗口 > 首选项。展开左边的因特网条目并选择 Web 浏览器。在主要部分中选择内部 Web 浏览器之外的任意 Web 浏览器。然后,在每次“在服务器上运行或调试”之前,需要在执行此操作之前先关闭外部 Web 浏览器。
在远程“服务器连接”服务器上调试时发生服务器连接故障。

如果不能连接至远程门户网站服务器进行调试,并且您确信服务器已正确配置,则该问题可能是由于连接至远程机器上的 JVM 进程时发生超时所导致的。如果远程机器繁忙或者网络速度太慢,就可能发生这种问题。

可以通过选择窗口 > 首选项 > Java > 调试,然后增大调试器超时字段的值,从而增大用于调试的超时值。

SuSE Linux Enterprise Server V9 的内置浏览器(Konqueror)不执行协作 portlet。

有关更多信息,以及支持协作 portlet 菜单的 Web 浏览器的列表,请参阅 WebSphere Portal Information Center 中的 Developing portlets > Cooperative portlets > Known issues and restrictions with cooperative portlets 主题。

有关定义备用 Web 浏览器的指示信息,请参阅定义 Web 浏览器和设备仿真器

具有各个 IBM® portlet API portlet 之间的永久连接的门户网站项目未能部署或导出至 WebSphere Portal 5.1.0.0。

参阅永久连接协作 portlet 中的部署先决条件指示信息。

在部署之后,从已导入的 WebSphere Portal Server 中已删除的永久连接在远程 Portal Server 上仍然可用。

您只能从已使用 iFix PK00815 进行了更新的 WebSphere Portal Server 中除去永久连接。

如果您已将 Portal Server 从 5.0.2 升级到 5.0.2.1 然后又升级到 5.0.2.2,并且您正在使用带有修订包 7 或修订包 8 的 DB2® V7.2,则当您从 Portal Server 中导入门户网站项目时就可能会发生以下错误消息:字符引用“#26”是无效 XML 字符。这是由于在将 Portal Server 从 5.0.2 升级到 5.0.2.1 时存在问题,导致毁坏了门户网站数据库中的双字节字符(这些字符在 XMLAccess 中无效)。
要修正此问题,您需要对服务器手工运行两个 XMLAccess 脚本。遵循下列步骤:
  1. 使用 XMLAccess 从 Portal Server 中导出整个配置:
    xmlaccess -in Export.xml -user wpsadmin -pwd wpsadmin -out serverconfig.xml -url http://hostname/wps/config
    可以在 <wps_home>/doc/xml-samples 目录中找到 Export.xml。
  2. 编辑作为上一步的结果而创建的 serverconfig.xml 文件。搜索 &#26; 的所有实例,并将它们替换为一个 ANSI 字符,例如,~。使用多个字符可能会导致 XMLAccess 脚本出错,原因是可能会超过门户网站数据库中允许的字符串长度。保存此文件。
  3. 使用 XMLAccess 并用修改之后的 serverconfig.xml 文件来重新配置服务器:
    xmlaccess -in serverconfig.xml -user wpsadmin -pwd wpsadmin -url http://hostname/wps/config
  4. 现在就可以从 Portal Server 中导入门户网站项目了。
  5. 如果您愿意的话,使用 RAD 来更正已毁坏的字符串的本地语言翻译。

(C) Copyright IBM Corporation 2002, 2005. All Rights Reserved.