Невозможно перенаправить на страницу ошибки в JSF, используя ExceptionHandlerWrapper - PullRequest
0 голосов
/ 03 декабря 2018

Ниже приведен фрагмент кода, где страница перенаправляется на страницу ошибки, когда у нас есть исключения FaceletException, Run-time и User Exception, но она не перенаправляет, когда у нас есть ComponentNotFoundException

public void handle() throws FacesException {

  final Iterator<ExceptionQueuedEvent> queue = getUnhandledExceptionQueuedEvents().iterator();

  while (queue.hasNext()) {

    ExceptionQueuedEvent item = queue.next();
    try {
      ExceptionQueuedEventContext exceptionQueuedEventContext = (ExceptionQueuedEventContext) item.getSource();

      Throwable exception = exceptionQueuedEventContext.getException();

      String uuid = UUID.randomUUID().toString();
      final FacesContext fc = FacesContext.getCurrentInstance();
      final Map<String, Object> requestMap = fc.getExternalContext().getRequestMap();
      final ConfigurableNavigationHandler nav = (ConfigurableNavigationHandler) fc.getApplication().getNavigationHandler();

      requestMap.put("exceptionMessage", exception.getMessage());
      requestMap.put("stackTrace", getStactTrace(exception));
      requestMap.put("UUID", uuid);

      if (isAjaxRequest(fc.getExternalContext().getRequestHeaderMap())) {

        nav.performNavigation("error.xhtml?faces-redirect=true");
      } else {
        LOG.info("IN NON Ajax Request Redirect");
        nav.handleNavigation(fc, null, "error.xhtml?faces-redirect=true");
      }
    } finally {
      // remove it from queue
      queue.remove();
    }
  }
  getWrapped().handle();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...