Error handling 使用seedstack和undertow管理错误处理

Error handling 使用seedstack和undertow管理错误处理,error-handling,undertow,seedstack,Error Handling,Undertow,Seedstack,我需要通过设置一条通用错误消息来管理HTTP错误,以便在HTTP响应中隐藏服务器端错误 我正在使用Seedstack和嵌入式服务器。我已经找到了如何使用HttpHandler管理错误,只是还没有找到如何将这个错误处理程序集成到SeedStack 我的SimpleErrorPageHandler 公共类SimpleErrorPageHandler实现HttpHandler{ 私有最终HttpHandler next; 公共SimpleErrorPageHandler(下一个是最终的HttpHand

我需要通过设置一条通用错误消息来管理HTTP错误,以便在HTTP响应中隐藏服务器端错误

我正在使用Seedstack和嵌入式服务器。我已经找到了如何使用HttpHandler管理错误,只是还没有找到如何将这个错误处理程序集成到SeedStack

我的SimpleErrorPageHandler

公共类SimpleErrorPageHandler实现HttpHandler{
私有最终HttpHandler next;
公共SimpleErrorPageHandler(下一个是最终的HttpHandler){
this.next=next;
}
@凌驾
public void handleRequest(最终HttpServerExchange)引发异常{
exchange.addDefaultResponseListener(exchange1->{
如果(!exchange1.isResponseChannelAvailable()){
返回false;
}
如果(exchange1.getStatusCode()==500){
最终字符串errorPage=“ErrorInternal Error”;
exchange1.getResponseHeaders().put(Headers.CONTENT_LENGTH,“+errorPage.LENGTH());
exchange1.getResponseHeaders().put(Headers.CONTENT_TYPE,“text/html”);
发送方发送方=exchange1.getResponseSender();
sender.send(errorPage);
返回true;
}
返回false;
});
下一步。HandlerRequest(交换);
}
}

当前版本的SeedStack不允许定义自定义的Undertow HTTP处理程序。只有支持servlet的HTTP处理程序是硬编码的。我们计划在将来引入

但是,关于您的问题,我们无法为特定HTTP状态代码或异常指定错误页,以及默认错误页。这将是这样做的:

web:
  server:
    errorPages:
      - location: /errors/404.html
        errorCode: 404
      - location: /errors/415.html
        errorCode: 415
      - location: /errors/default.html
此功能将在7月底即将发布的SeedStack 19.7中发布