Я настроил обработку исключений в шлюзе Zuul, реализовав интерфейс ErrorController.Мое требование состоит в том, чтобы перенаправить пользователя на одну страницу внешней ошибки (которая является общей для разных проектов).Он работает нормально, за исключением случаев, когда 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.Я не уверен, как заставить это работать.
Может кто-нибудь помочь, что здесь может быть не так?