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