Я реализовал Omnifaces FullAjaxExceptionHandler, но проблема в том, что он не работает с ajax-запросами. После окончания сеанса, когда я нажимаю кнопку не-ajax, она работает хорошо. Он перенаправляет пользователя на страницу пользовательских ошибок. Но если кнопка использует ajax, она ничего не делает. Страница просто stucks.
Изменить: я изменил ActionListener на Action и все тот же.
Edit2: Это не дает ошибок. Ни выпуск Apache Tomcat, ни Apache Tomcat Log.
 
вот моя безопасность spring;
<http auto-config='true' use-expressions="true">
    <intercept-url pattern="/login" access="permitAll"/>
    <intercept-url pattern="/ajaxErrorPage" access="permitAll"/>
    <intercept-url pattern="/pages/*" access="hasRole('admin')" />
    <intercept-url pattern="/j_spring_security_check" access="permitAll"/>        
    <logout logout-success-url="/login.xhtml" />
    <form-login login-page="/login.xhtml"
                login-processing-url="/j_spring_security_check"                                                       
                default-target-url="/pages/index.xhtml"
                always-use-default-target="true"                                                        
                authentication-failure-url="/login.xhtml"/>
</http>
