2016-02-20 5 views
1

Я только что заметил, что каждый раз, когда Tomcat (8) запускается, он создает новый HttpSession (без каких-либо HttpServletRequest).Tomcat 8 создает новый сеанс при запуске

Я просто добавил SessionListener так:

public class SessionListener implements HttpSessionListener { 
    public SessionListener() {} 

    public void sessionCreated(HttpSessionEvent sessionEvent) { 
     HttpSession session = sessionEvent.getSession(); 
     ServletContext context = session.getServletContext(); 

     try { 
      if(session.isNew()){ 
       System.out.println("a new Session is created"); 
      } 
     } catch (Exception e) {} 
    } 

    public void sessionDestroyed(HttpSessionEvent sessionEvent) {} 
} 

Единственное, что я изменил сегодня это в context.xml:

<Context> 
    <Resource name="jdbc/test" 
       auth="Container" 
       type="javax.sql.DataSource" 
       factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"   
       maxActive="-1" 
       minIdle="-1" 
       maxWait="10000" 
       initialSize="10" 
       username="XYZ" 
       password="XYZ" 
       driverClassName="com.mysql.jdbc.Driver" 
       url="jdbc:mysql://localhost:3306/test"/> 
</Context> 

Но последний не может быть причиной создания сеанс запуска контейнера, правильно?

+0

Вы, таким образом, запускаете Tomcat изнутри IDE, например Eclipse? – BalusC

+0

Помимо актуального вопроса: 'maxWait' и' maxActive' были [устарели] (http://tomcat.apache.org/migration-8.html#Database_Connection_Pooling) в Tomcat 8. Они являются 'maxWaitMillis' и' maxTotal 'соответственно. Сервер должен зарегистрировать предупреждение об этих устаревших функциях. – Tiny

+0

@BalusC, да, я смотрю изнутри затмения. Я имею в виду, что TOMCAT не запускает проект. –

ответ

1

Это произойдет, когда вы запустите сервер из среды IDE, например Eclipse. Плагин сервера IDE, такой как плагин Eclipse Tomcat, может после запуска выполнить самотестирование, отправив запрос GET на / (так что плагин сервера IDE может отмечать сервер как «Начальный»). Очевидно, у вас есть на / странице, которая (неявно) создает новый сеанс.

Игнорируйте его. Это не произойдет во время производства.

+0

OMG, как вы могли понять это? вы просто человек. спасибо, и да, у меня есть/как путь к моему проекту, и я изменил его сейчас для тестирования, и никакой новый сеанс не был создан. Спасибо, мужик. –

Смежные вопросы