gpt4 book ai didi

java - Jetty 自定义错误处理程序类被调用但没有可抛出对象

转载 作者:行者123 更新时间:2023-11-30 07:30:57 25 4
gpt4 key购买 nike

我正在使用 Jetty 9.3.3。我实现了自定义错误处理程序类,调用了处理方法,但不明白为什么没有获得可抛出对象:

这是我的类(class)的代码:

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 过早返回响应(在将异常附加到请求对象之前)。

关于java - Jetty 自定义错误处理程序类被调用但没有可抛出对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36135999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com