HTTPSession Java недействительным во время обработки

Привет, ребята,

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

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

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

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

1 ответ

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

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

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

HttpSession session = request.getSession();
session.setMaxInactiveInterval(10*60); // in seconds !
Другие вопросы по тегам