как вы обрабатываете запрос на тайм-аут в приложении GWT?
Вот фрагмент моего файла web.xml:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
Мой проект GWT основан на деятельности и местах MVP.
Всякий раз, когда пользователь ждет более 30 минут, я хочу отобразить всплывающее окно и перенаправить пользователя на страницу входа. Вот что я делаю для
все услуги RPC:
public void onFailure(Throwable caught) {
...
if (caught instanceof InvocationException) {
{
Window.alert("Time out de session. Veuillez vous reconnecter. 2");
Window.open(GWT.getHostPageBaseURL() + "identification.html", "_self", null);
return;
}
...}
Это работает, но несколько вещей раздражают:
1) перехваченное исключение должно быть RequestTimeoutException. Но он не пойман, поэтому вместо этого я использую InvocationException.
Почему это не пойман?
2) как я могу обработать это исключение более общим способом? Немного глупо отлавливать это исключение во всех сервисах RPC ...
Я читал о каком-то классе AsyncCallbackAdapter ...
3) Прямо сейчас я работаю только с сервисами RPC, но, конечно, исключение тайм-аута встречается везде: ссылки, кнопки, обновление страницы
Я использую Места и Действия MVP.
Есть ли способ перехватить это исключение, когда пользователь пытается перейти в какое-то место?
Спасибо за помощь