应用程序启动错误

使用此信息来对启动应用程序时出现的问题进行故障诊断。

启动应用程序时,您遇到的是哪类错误?

以下注意事项适用于本主题中的 ibm-web-ext.xmi 引用:
支持的配置 支持的配置: 对于 IBM® 扩展文件和绑定文件,根据您使用的是 Java EE 5 之前的应用程序或模块还是 Java™ EE 5 或之后的应用程序或模块,.xmi 或 .xml 文件扩展名有所不同。IBM 扩展文件或绑定文件将命名为 ibm-*-ext.xmi 或 ibm-*-bnd.xmi,其中 * 是扩展文件或绑定文件的类型,例如,app、application、ejb-jar 或 web。存在下列条件:
  • 对于使用 V5 之前的 Java EE 版本的应用程序或模块,文件扩展名必须是 .xmi。
  • 对于使用 Java EE 5 或更高版本的应用程序或模块,文件扩展名必须是 .xml。如果应用程序或模块中包含 .xmi 文件,那么产品将忽略这些 .xmi 文件。

然而,Java EE 5 或更高版本的模块可以在包含 Java EE 5 之前的文件并使用 .xmi 文件扩展名的应用程序中存在。

ibm-webservices-ext.xmiibm-webservices-bnd.xmiibm-webservicesclient-bnd.xmiibm-webservicesclient-ext.xmiibm-portlet-ext.xmi 文件继续使用 .xmi 文件扩展名。

sptcfg

HTTP Server 和应用程序服务器在独立工作,但请求未从 HTTP Server 传递到应用程序服务器

如果 HTTP Server 似乎在正常工作,且应用程序服务器也在独立工作,但是发送到 HTTP Server 以尝试获取页面的浏览器请求未得到服务,那么表明 WebSphere® Application Server 插件存在问题。

在这种情况下:

  1. 确定 HTTP Server 本身是否正在尝试服务所请求的资源,而不是将其转发到 WebSphere Application Server。
    1. 浏览 HTTP Server 访问日志(IBM HTTP Server 的 IHS install root/logs/access.log)。这可能表明它无法在自己的文档根目录中找到文件。
    2. 浏览插件日志文件。
  2. 刷新 plugin-cfg.xml 文件,该文件确定发送到 HTTP Server 的哪些请求会转发到 WebSphere Application Server,以及转发到哪个应用程序服务器。
    使用控制台来刷此文件:
    • 在 WebSphere Application Server 管理控制台中,展开“环境树”控件。
    • 单击“更新 WebSphere 插件”。
    • 停止然后重新启动 HTTP Server。

      [IBM i]如果使用的是 IBM HTTP Server for iSeries 或 Lotus® Domino® for iSeries,那么不需要重新启动 HTTP Server。

    • 重试 Web 请求。

    [IBM i]如果您已创建 Web 服务器定义以便对 Web 服务器实例进行建模,那么该文件位于 profile_root/config/cells/cell_name/nodes/Web_server_node_name/servers/Web_server_name 下。如果尚未创建 Web 服务器定义,那么该文件位于 profile_root/config/cells 下。

  3. 浏览 plugin_install_root/logs/web_server_name/http_plugin.log 文件以获取问题的线索。确保具有最新插件信息节(在装入插件时输出)的时间戳记与 Web 服务器的启动时间一致。
  4. 通过将 plugin-cfg.xml 文件中的 LogLevel 属性设置为 Trace 并重新装入请求来打开插件跟踪。浏览 plugin_install_root/logs/Web_server_name/http_plugin.log 文件。您应该会看到插件尝试使请求 URI 与 plugin-cfg.xml 中路由的各种 URI 定义相匹配。检查插件不匹配哪些规则,然后指出您是否需要添加其他规则。如果您最近刚安装 了应用程序,那么您可能需要手动重新生成插件配置以便挑选出与新的应用程序相关的新 URI。

有关对与插件相关的问题进行故障诊断的更多详细信息,请参阅Web 服务器插件故障诊断技巧

文件服务问题

如果文本输出显示在 JSP 或 Servlet 支持的 Web 页面上,但图像文件未显示,请执行以下操作:

  • 验证文件位置是否正确:Web 应用程序的文档根目录。WebSphere Application Server 遵循 J2EE 标准,这意味着文档根目录是所部署的 Web 应用程序的 web_module_name.war 目录。

    [AIX Solaris HP-UX Linux Windows][z/OS]此目录通常位于 install_root/installedApps/nodename/appname.ear 目录或 install_root/installedApps/nodename/appnameNetwork.ear 目录中。

    [IBM i]此目录通常位于 profile_root/installedApps/nodename/appname.ear 目录中或 profile_root/installedApps/nodename/appnameNetwork.ear 目录中。

    如果文件在文档根的子目录中,那么验证此文件的引用是否反映它。即,如果 invoices.html 文件存储在 Windows 目录 web_module_name.war\invoices 中,那么 Web 应用程序的其他页面中用于显示该文件的链接应该是“invoices\invoices.html”,而不是“invoices.html”

  • 验证是否将 Web 应用程序配置为启用文件服务(换而言之,验证此应用程序是否能够显示图像和 .html 文件之类的静态资源):
    1. 通过使用组装工具浏览源 .war 文件,查看主管 Web 模块的文件服务属性。如果必要,更新属性并重新部署模块。

    2. 在所部署的 Web 应用程序的 ibm-web-ext.xmi 配置文件中,编辑 fileServingEnabled 属性。

      [AIX Solaris HP-UX Linux Windows][z/OS]该文件通常位于 install_root/config/cells/nodenamenodenameNetwork/applications/application_name/deployments/application name/Web_module_name/web-inf 目录中。

      [IBM i]该文件通常位于 profile_root/config/cells/nodenamenodenameNetwork/applications/application_name/deployments/application name/Web_module_name/web-inf 目录中。

图形不显示在 JSP 文件或 Servlet 输出中。

如果文本输出显示在 JSP 或 Servlet 支持的 Web 页面上,但图像文件未显示,请执行以下操作:

  • 验证图形文件的位置是否正确:Web 应用程序的文档根目录。产品遵循 J2EE 标准,这意味着文档根目录是所部署的 Web 应用程序的 web_module_name.war 目录。

    [AIX Solaris HP-UX Linux Windows][z/OS]此目录通常位于 install_root/installedApps/nodename/appname.ear 目录中或 install_root/installedApps/nodename/appnameNetwork.ear 目录中。

    [IBM i]此目录通常位于 profile_root/installedApps/nodename/appname.ear 目录中或 profile_root/installedApps/nodename/appnameNetwork.ear 目录中。

    如果图形文件位于文档根目录的子目录中,请验证对图形的引用是否反映了这种情况;例如,如果 banner.gif 文件存储在 Windows 目录 web_module_name.war/images 中,那么用来显示该文件的标记应该是 <img SRC="banner.gif">,而不是 <img SRC="banner.gif">

  • 验证是否将 Web 应用程序配置为启用文件服务(即,显示图像和 .html 文件之类的静态资源)。
    1. 通过使用组装工具浏览源 .war 文件,查看主管 Web 模块的文件服务属性。若有必要,更新属性并重新部署模块。

    2. 在所部署的 Web 应用程序的 ibm-web-ext.xmi 配置文件中,编辑 fileServingEnabled 属性。

      [AIX Solaris HP-UX Linux Windows][z/OS]该文件通常位于 install_root/config/cells/nodenamenodenameNetwork/applications/application_name/deployments/application name/Web_module_name/web-inf 目录中。

      [IBM i]该文件通常位于 profile_root/config/cells/nodenamenodenameNetwork/applications/application_name/deployments/application name/Web_module_name/web-inf 目录中。

    3. 完成上面的步骤之后:
      • 在管理控制台中,展开“环境”树控件。
      • 单击更新 WebSphere 插件
      • 停止并重新启动 HTTP Server,然后重试 Web 请求。

SRVE0026E: [Servlet 错误]-[无法编译 JSP 文件的类]

如果首次尝试访问新的或修改的 .jsp 文件时浏览器中出现此错误,那么原因极可能是在 javac 编译阶段,JSP 文件 Java 源代码发生失败(源代码不正确)。

[z/OS]检查日志文件以查看编译器错误消息。

[AIX Solaris HP-UX Linux Windows][IBM i]在 SystemErr.log 文件中查找编译器错误消息,例如:
C:\WASROOT\temp\ ... test.war\_myJsp.java:14: \Duplicate variable declaration: int myInt was int myInt
int myInt = 122; 
String myString = "number is 122"; 
static int myStaticInt=22; 
int myInt=121; 
      ^
注: 本主题引用了一个或多个应用程序服务器日志文件。作为另一种建议采用的方法,您可以在分布式系统和 IBM i 系统上配置服务器以使用高性能可扩展日志记录 (HPEL) 记录和跟踪基础结构,而不使用 SystemOut.logSystemErr.logtrace.logactivity.log 文件。您还可以将 HPEL 与本机 z/OS® 日志记录设施结合使用。如果要使用 HPEL,那么可从服务器概要文件 bin 目录使用 LogViewer 命令行工具来访问所有日志和跟踪信息。有关使用 HPEL 的更多信息,请参阅有关使用 HPEL 对应用程序进行故障诊断的信息。

修正 JSP 源文件中的问题,保存源并再次请求 JSP 文件。

如果在尝试为一个 JSP 文件提供服务时发生此错误,而该 JSP 文件是从能够成功地运行该文件的另一个系统复制的,那么表明新的服务器环境有一些不同,这些不同导致该 JSP 文件无法运行。浏览错误文本,以获取与以下内容类似的语句:
Undefined variable or class name: MyClass
此错误表明支持的类或 jar 文件未复制到目标服务器,或者它不在类路径中。查找文件 MyClass.class,并将其放到 Web 模块的 WEB-INF/classes 目录中,或者将包含此文件的 .jar 文件放到 Web 模块的 WEB-INF/lib 目录中。

通过执行以下操作验证用来访问资源的 URL 是否正确:

  • 对于 JSP 文件、html 文件或图像文件:http://host_name/Web_module_context_root/文档根目录下的子目录(如果有)/filename.ext。Web 应用程序的文档根目录是所安装的应用程序的 application_name.WAR 目录。
    • 例如,要访问 myhost.mydomain.com 上的 c:\WebSphere\ApplicationServer\installedApps\myEntApp.ear\myWebApp.war\invoices 中的 myJsp.jsp 文件,并假定 Web 模块 myWebApp 的上下文根目录是 myApp,那么 URL 为 http://myhost.mydomain.com/myApp/invoices/myJsp.jsp。
    • 缺省情况下,JSP 服务已启用。针对 HTML 文件和图像文件的文件服务必须作为 Web 模块的一个属性启用,即,使用组装工具进行启用,或者通过在所安装 Web 应用程序的 ibm-web-ext.xmi 文件中将 fileServingEnabled 属性设置为 true 并重新启动应用程序进行启用。

  • 对于按类名服务的 Servlet,URL 是 http://hostname/Web_module_context_root/Servlet/packageName.className

    [AIX Solaris HP-UX Linux Windows]例如,要访问 c:\WebSphere\ApplicationServer\installedApps\myEntApp.ear\myWebApp.war\WEB-INF\classes 中的 myCom.myServlet.class,并假定 myWebApp 模块的上下文根目录为“myApp”,那么 URL 将是 http://myhost.mydomain.com/myApp/servlet/myCom.MyServlet。

    [IBM i]例如,要访问 profile_root/installedApps/myEntApp.ear/myWebApp.war/WEB-INF/classes 中的 myCom.myServlet.class,并假定 myWebApp 模块的上下文根目录为“myApp”,那么 URL 将是 http://myhost.mydomain.com/myApp/servlet/myCom.MyServlet。

  • “按类名提供 Servlet 服务”必须作为 Web 模块的一个属性启用,并且缺省情况下处于启用状态。针对 HTML 文件和图像文件的文件服务必须作为 Web 应用程序的一个属性启用,即,使用组装工具进行启用,或者通过在所安装 Web 应用程序的 ibm-web-ext.xmi 文件中将 fileServingEnabled 属性设置为 true 并重新启动应用程序进行启用。

更正“源”HTML 文件、Servlet 或 JSP 文件中的 URL。没有前导斜杠 (/) 的 HREF 继承调用资源上下文。例如:

  • http://[hostname]/myapp/servlet/MyServlet 中对 ServletB 的 HREF 将解析为“http://hostname/myapp/servlet/ServletB”
  • http://[hostname]/myapp/servlet/MyServlet 中对“servlet/ServletB”的 HREF 将解析为“http://hostname/myapp/servlet/servlet/ServletB”(错误)
  • http://[hostname]/myapp/servlet/MyServlet 中对“/ServletB”的 HREF 将解析为“http://hostname/ServletB”(如果 ServletBMyServlet 需要相同的上下文根目录,那么将发生错误)
[AIX Solaris HP-UX Linux Windows][IBM i]

修改并保存 JSP 文件后,更改未显示在浏览器中

原因可能是未将 Web 应用程序配置为进行 Servlet 重新装入,或者重新装入时间间隔过长。

要解决此问题,请在组装工具中针对相关 Web 模块检查“IBM 扩展”中的“启用重新装入”标志和“重新装入时间间隔”值。启用重新装入,或者如果已启用它,那么将“重新装入时间间隔”设置得低一些。

错误消息:/jspname.jsp(9,0) Include: Mandatory attribute page missing

尝试浏览 JSP 文件时,显示了“消息:/jspname.jsp(9,0) Include: Mandatory attribute page missing”错误

可能是在转换为 Java 阶段,JSP 文件发生失败。确切地说,一个 JSP 伪指令(在本例中,是 Include 语句)不正确或者引用了找不到的文件。

要解决此问题,在 JSP 源中修正此问题,保存此源并再次请求此 JSP 文件。

[AIX Solaris HP-UX Linux Windows][IBM i]

根据 JSP 文件生成的 Java 源代码未保留在临时目录中

可能未将 JSP 处理器配置为保留所生成的 Java 源代码。

组装工具中,针对相关 Web 模块检查“组装属性扩展”下面的“JSP 属性”。确保 keepgenerated 属性存在并设为 true。如果此属性不存在,请设置此属性并重新启动 Web 应用程序。要查看此操作的结果,请从 temp 目录中删除此类文件,以强制 JSP 处理器再次将 JSP 源代码转换为 Java 源代码。

“找不到企业应用程序[您输入的应用程序名称]”错误

JSP 批处理编译器失败并返回“找不到企业应用程序[您输入的应用程序名称]”消息。

可能是期望以 .ear 子目录(位于 applications 目录中)开始的完整企业应用程序路径和名称作为 JspBatchCompiler 工具的参数,而不只是显示名。

[AIX Solaris HP-UX Linux Windows]目录路径是 install_root\config\cells\node_nameNetwork\applications

[IBM i]目录路径是 profile_root/config/cells/node_nameNetwork/applications

例如:

  • “JspBatchCompiler -enterpriseapp.name sampleApp.ear/deployments/sampleApp”正确,但是
  • “JspBatchCompiler -enterpriseapp.name sampleApp”不正确。

非英语浏览器输入的翻译问题

如果非英语字符集浏览器输入在被 Servlet 或 JSP 文件读后无法进行转换,那么确保在读之前按照期望的字符集对请求参数进行编码。例如,如果站点是中文的,那么目标 .jsp 文件中应该有一行:
 req.setCharacterEncoding("gb2312");
在任何 req.getParameter 方法调用之前。

此问题会影响从较早版本的 WebSphere Application Server 移植的 Servlet 和 jsp 文件,这些较早版本自动根据 WebSphere Application Server 的语言环境来转换字符。

滚动条不显示在浏览器窗口中的项周围

在某些浏览器中,展开到分配给它们的窗口之外的树或表类型项没有允许您查看整个列表的滚动条。

要解决此问题,右键单击浏览器窗口并单击菜单中的重新装入

错误“Page cannot be displayed, server not found or DNS error”

尝试使用 Internet Explorer 浏览 JavaServer Pages (JSP) 文件时,显示了“Page cannot be displayed, server not found or DNS error”错误。

当 HTTP 超时导致服务方停止并重新启动时,可能发生此错误。要解决此问题,增大 ConnectionIOTimeOut 值:

  1. 从管理控制台中,选择系统管理Deployment Manager管理服务定制属性
  2. 选择 ConnectionIOTimeOut。
  3. 增大 ConnectionIOTimeOut 值。
  4. 单击确定
[z/OS]

启动应用程序时产生 DeploymentDescriptorLoadException 结果

如果在服务器启动期间部署应用程序所在的应用程序服务器使配置与 Deployment Manager 同步,那么应用程序可能不能启动,并且可能会将 DeploymentDescriptorLoadException 写至管理器 SystemErr.log 文件。停止然后重新启动服务器,接着再次尝试启动应用程序。


指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rtrb_pagedisplayprob2
文件名:rtrb_pagedisplayprob2.html