[英]Jetty customized Error handler class is called but no throwable object is Got
我正在使用 Jetty 9.3.3。 我實現了我的自定義錯誤處理程序類,調用了 handle 方法,但不明白為什么沒有得到可拋出的對象:
這是我班級的代碼:
public class TestExecuterServerErrorHandler extends ErrorHandler{
private Logger logger=Logger.getLogger(this.getClass().getName());
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException{
logger.systemWriteOutput("handeling error", 3);
ByteArrayISO8859Writer writer= new ByteArrayISO8859Writer(4096);
Throwable th = (Throwable)request.getAttribute(RequestDispatcher.ERROR_EXCEPTION);
response.setContentType("text/xml");
if(th!=null)
{
writeResponseError(response.getStatus(), th, writer);
th.printStackTrace();
}
writer.flush();
response.setContentLength(writer.size());
writer.writeTo(response.getOutputStream());
writer.destroy();
}
}
輸出:
handeling error
handeling error
如何打印 handle 方法調用的原因?
使用 Jetty 和 Jersey 時我遇到了同樣的問題。 我通過將屬性ServerProperties.RESPONSE_SET_STATUS_OVER_SEND_ERROR
設置為true
來解決它,防止 Jersey 過早返回響應(在將異常附加到請求對象之前)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.