HTTPSession Java недействительным во время обработки - PullRequest
0 голосов
/ 18 сентября 2018

Hy, ребята,

вот моя проблема. У меня есть сервлет, который отвечает на входящие запросы. Сессия открывается для каждого запроса. Эта сессия имеет продолжительность одной минуты. Теперь может случиться так, что новый запрос приходит именно в момент истечения сеанса. Этот запрос выполняется точно в недействительной сессии. В начале запроса сеанс все еще действителен, в конце больше нет. Соответственно есть и исключение.

Мой вопрос сейчас таков: есть ли способ динамически расширить сессию в Wildfly? Или можно как-то отменить недействительный сеанс?

Сервлет работает на Wildfly12.

Я надеюсь, что кто-то может мне помочь. Много поздравлений

1 Ответ

0 голосов
/ 18 сентября 2018

Тайм-аут, определенный в web.xml, является idle тайм-аутом сеанса. Если вы установите его на одну минуту, это не означает, что продолжительность сеанса составляет одну минуту, это означает, что он будет признан недействительным через одну минуту неактивности ! Это серьезная разница.

Сказать, что " в начале запроса сеанс все еще действителен, в конце больше не " очень странно, потому что, если запрос обрабатывается, это означает некоторую текущую активность, которая немного противоречит состоянию простоя (NB: хорошо, вы можете получить тайм-аут чтения, если ваш сервлет не отвечает в течение разумной задержки запрашивающей стороне, но это другая история, с сеансом ничего не видно) ...

Теперь, если вы действительно хотите увеличить время ожидания для текущей сессии, вы можете сделать это программно:

HttpSession session = request.getSession();
session.setMaxInactiveInterval(10*60); // in seconds !
...