此问题出现在 Websphere 6.1 上部署的 Spring MVC 应用程序中。当我尝试访问应用程序中不存在的 URL 时,我收到 404 错误。我有一个错误控制器类,它将记录所有异常并重定向到错误页面。Throwable 实例是从此控制器中的请求中检索到的,这是 com.ibm.ws.webcontainer.webapp.WebAppErrorReport 的一个实例。当我尝试通过 getStackTrace() 方法访问时,我发现堆栈跟踪元素为 null,导致日志记录期间 logback API 类中出现 NullPointerException。结果,屏幕不会重定向到错误页面,并且整个堆栈跟踪都显示在屏幕上。除了 404 错误之外,它对于其他异常都可以正常工作。
我注意到 printStackTrace 在 WebAppErrorReport 中没有被覆盖,并且正在使用它将堆栈跟踪写入字符串以进行日志记录。
但是,我对这个解决方案不太满意,想知道是否还有其他更好的出路。另外,我很好奇为什么堆栈跟踪仅针对此错误为空?