如何调试服务器端错误?

How do I debug server-side errors?

我们的 Java 应用程序正在从 WAS 7 服务器迁移到 WAS 8.5 服务器 - 出于某种原因,即使我们的应用程序在我们的管理控制台中显示为已部署,应用程序本身并未即将出现在我们分配的 URL 上。

我已经通过在我的本地服务器上测试应用程序排除了与代码相关的问题的可能性,所以我知道问题出在某些服务器设置上 - 但是,我在 CS 方面的几乎所有经验都是在编码方面,而且我不知道如何找出这些设置哪里出错了。

我有哪些选项可以调试应用程序的服务器端问题?

  1. 检查服务器日志:在 WAS 控制台中,您可以找到服务器的日志。

  2. 在本地服务器调试。通过在本地服务器中部署 ear,您可以在登录模式下启动服务器。然后你应该停止并重新启动你的 websphere 应用程序,它将在选定的断点处停止。

您没有具体说明 "coming up," 的意思,所以我将从广泛的建议开始。

需要进行完整性检查的几件事:

  • 确保应用程序已部署在您尝试访问它的特定服务器上。将多台服务器全部放在一个单元中并由一个部署管理器控制是很常见的,并且应用程序只能部署到这些服务器中的一部分。在管理控制台中,在 Servers -> WebSphere application servers 下,您可以找到您希望它所在的服务器并检查 Installed applications.
  • 检查应用程序本身是否已启动。有可能服务器已启动,但应用程序尚未启动。在 Applications -> WebSphere enterprise applications 中,查找应用程序旁边的绿色箭头。
  • 如果您尝试访问 servlet,请确保将您的 Web 模块的上下文根设置为您所期望的。在应用程序的配置页面中,它位于 Web 模块属性 下的 Web 模块上下文根
  • 如果所有这些似乎都是正确的,或者如果应用程序已停止且无法启动,请检查您配置文件的 logs 目录中的服务器日志,尤其是 SystemOut.log 和 ffdc 文件夹。可能是你去访问的时候出错了,或者启动的时候出错了。那些应该出现在那里。
  • 如果您的应用程序使用版本低于 3.1 的 EJB,则 EJBDeploy 工具必须在部署之前或作为部署过程的一部分针对您的应用程序进行 运行。如果您希望出现后者,请确保 EJBDeploy 工具与 WebSphere 一起安装在目标系统上。

如果所有这些都失败了,您可以打开调试器(如果您的环境允许这样做)并查看您的代码是否被访问。