Вы можете явно установить тайм-аут сеанса в дескрипторе развертывания или сделать это программно (хотя вы, вероятно, не хотите делать это в приложении JSF).
В конечном счете, это контролирует контейнер - сервер управляет моментом освобождения ресурсов независимо от настроек логического истечения срока действия.
Вы можете помочь диагностировать происходящее с помощью слушателей. Например, ваш класс bean-компонента может реализовывать HttpSessionBindingListener . Он будет уведомлен, когда он будет добавлен или удален из сеанса. В качестве альтернативы вы можете просматривать все события сеанса, используя HttpSessionAttributeListener (JSF может использовать сеанс для управления состоянием просмотра, поэтому ожидайте, что некоторые записи вы не определили сами). HttpSessionAttributeListener определен в файле web.xml:
<listener>
<display-name>MyListener</display-name>
<listener-class>
somepackage.MySessionDiagnosticListenerImpl
</listener-class>
</listener>
Если вы просто оставляете сервер неактивным, возможно, он использует другие запросы сеанса для запуска очистки сеанса с истекшим сроком действия, и вы наблюдаете детали реализации. Или у вас может быть утечка памяти, потому что вы установили ссылку на объект в каком-то неуправляемом классе.