Конфигурация времени ожидания сеанса не работает? - PullRequest
2 голосов
/ 15 апреля 2010

В web.xml У меня есть

 <session-config>
   <session-timeout>2</session-timeout>
 </session-config>

 <listener>
  <listener-class>myapplication.SessionListener</listener-class>
 </listener>

В SessionListener.java у меня

public void sessionDestroyed (HttpSessionEvent event){    
   System.out.println("Visitor Removed!!");
}

Но, похоже, System.out.println("Visitor Removed!!") никогда не исполнялся. Я новичок в Tomcat 6 и JSP. Любое предложение, пожалуйста?

1 Ответ

6 голосов
/ 15 апреля 2010

Это может иметь как минимум 3 причины:

  1. Сессия никогда не создавалась. Слушайте также sessionCreated().
  2. Вы немного нетерпеливы. Сеанс уничтожения происходит лениво и через определенные промежутки времени. Это не происходит сразу . Если вы запустите запрос new в том же сеансе, когда он истек, будет вызван sessionDestroyed(). Или, если у вас немного больше терпения, сервер запустит задание таймера с низким приоритетом, чтобы пожинать все сеансы с истекшим сроком действия.
  3. Вы не используете класс myapplication.SessionListener в пути к классам, как вы думаете, возможно, тот, который на самом деле в пути к классам не имеет строки sysout.
...