HTTPSession Java недействительным во время обработки
Привет, ребята,
вот моя проблема У меня есть сервлет, который отвечает на входящие запросы. Сессия открывается для каждого запроса. Эта сессия длится одну минуту. Теперь может случиться так, что новый запрос приходит точно в момент истечения сеанса. Этот запрос выполняется точно в недействительной сессии. В начале запроса сеанс все еще действителен, в конце больше нет. Соответственно есть и исключение.
Теперь у меня вопрос, есть ли способ динамически расширить сессию в Wildfly? Или можно как-то отменить недействительный сеанс?
Сервлет работает на Wildfly12.
Я надеюсь, что кто-то может помочь мне. Много приветствий
1 ответ
Тайм-аут, определенный в web.xml, является тайм-аутом простоя сеанса. Если вы установите его на одну минуту, это не означает, что ваш сеанс имеет продолжительность жизни в одну минуту, это означает, что он будет признан недействительным после одной минуты бездействия! Это серьезная разница.
Сказать, что "в начале запроса сеанс все еще действителен, в конце больше нет" очень странно, потому что, если запрос обрабатывается, это означает некоторую текущую активность, которая немного противоречит состоянию простоя (NB: хорошо, вы можете получить тайм-аут чтения, если ваш сервлет не отвечает в течение разумного промежутка времени запрашивающей стороне, но это другая история, с сеансом ничего не видно)...
Теперь, если вы действительно хотите увеличить время ожидания для текущего сеанса, вы можете сделать это программно:
HttpSession session = request.getSession();
session.setMaxInactiveInterval(10*60); // in seconds !