Задание времени ожидания сеанса с помощью дескриптора развертывания должно работать - оно устанавливает время ожидания сеанса по умолчанию для веб-приложения. Вызов session.setMaxInactiveInterval () устанавливает время ожидания для конкретного сеанса, в котором он вызывается, и переопределяет значение по умолчанию. Также следует учитывать разницу в единицах - версия дескриптора развертывания использует минуты, а session.setMaxInactiveInterval () - секунды.
Итак
<session-config>
<session-timeout>60</session-timeout>
</session-config>
устанавливает время ожидания сеанса по умолчанию равным 60 минутам.
И
session.setMaxInactiveInterval(600);
устанавливает время ожидания сеанса равным 600 секундам - 10 минутам - для определенного сеанса, который он вызывал.
Это должно работать в Tomcat, Glassfish или на любом другом веб-сервере Java - это часть спецификации.