如何为JakartaEE/Glassfish应用启用堆栈跟踪输出?
简版
需要通过什么配置项,才能让Glassfish在其通用500 Server Error页面中包含堆栈跟踪信息:
详细说明
在ASP.net中,可通过在web.config XML文件中设置对应参数,让通用错误页包含堆栈跟踪:
web.config配置示例:
<configuration> <system.web> <customErrors mode="Off" /> </system.web> </configuration>
该配置生效后,页面会直接展示错误的堆栈跟踪:
JakartaEE/Glassfish中对应的等效配置是什么?
当前默认的gray screen of death(灰色故障页)不会展示堆栈跟踪:
替代实现方案
Jakarta-EE中提供了什么机制可以注册全局未捕获异常处理器,从而自行实现堆栈跟踪展示?
在ASP.net中,可进入global.asax文件,编写Application_Error回调的对应代码:
Global.asax代码示例:
void Application_Error(object sender, EventArgs e) { // 未处理错误触发时运行的代码 // 获取异常对象 Exception exc = Server.GetLastError().GetBaseException(); WriteCustomYellowScreenOfDeath(Response, exc); // 清除服务端记录的错误 Server.ClearError(); }
Java/Java-EE/Jakarta-EE/Glassfish中对应的实现方式是什么?
已调研参考内容
- 如何在glassfish中启用jersey跟踪日志
- 如何增加Java堆栈跟踪转储的显示行数
- Glassfish返回HTTP 500内部服务器错误但无任何异常信息
- Jersey发生500服务器错误时如何获取堆栈跟踪
- 如何在GlassFish中打印完整堆栈跟踪
- Glassfish中的未处理异常详情获取
内容的提问来源于stack exchange,提问作者Ian Boyd
相关产品推荐
相关产品推荐

