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

Эй, ребята,

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

У меня вопрос: есть ли способ динамически продлить сеанс в Wildfly? Или можно как-то отменить аннулирование сеанса?

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

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
98
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

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

Другие вопросы по теме