如果Zuul SimpleHostRouting过滤器中的连接被拒绝错误,则自定义ErrorController不起作用

时间:2019-04-16 19:25:17

标签: spring-boot exception netflix-zuul

我通过实现ErrorController接口在Zuul网关中自定义了异常处理。我的要求是将用户重定向到一个外部错误页面(这在不同项目中很常见)。除SimpleHostRoutingFilter引发连接拒绝错误(即,任何下游服务未启动)的情况外,它都工作正常。在这种情况下,它将显示带有异常详细信息的标准Tomcat错误页面。以下是我对ErrorController-

的实现
@Controller
@RequestMapping("${server.error.path:${error.path:/error}}")
public class ZuulErrorController implements ErrorController {

    private static final Logger log = LoggerFactory.getLogger(ZuulErrorController.class);

    @Value("${error.path:/error}")
    private String errorPath;

    @Value("${gateway.defaultErrorPage}")
    private String defaultErrorPage;

    @Override
    public String getErrorPath() {
        return errorPath;
    }

    @RequestMapping(value = "")
    public void handleError(HttpServletRequest request, HttpServletResponse response) throws IOException {
        log.info("Handling exception and redirecting to external page");
        response.sendRedirect(defaultErrorPage);
        return;
    }

}

进行了将近2天的分析后,即使重定向(覆盖行为并显示Tomcat错误页面)后,过滤器处理仍在继续进行。我不确定如何使这项工作。

有人可以帮忙解决这里的问题吗?

0 个答案:

没有答案