Я только что заметил, что каждый раз, когда 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>
Но последний не может быть причиной создания сеанс запуска контейнера, правильно?
Вы, таким образом, запускаете Tomcat изнутри IDE, например Eclipse? – BalusC
Помимо актуального вопроса: 'maxWait' и' maxActive' были [устарели] (http://tomcat.apache.org/migration-8.html#Database_Connection_Pooling) в Tomcat 8. Они являются 'maxWaitMillis' и' maxTotal 'соответственно. Сервер должен зарегистрировать предупреждение об этих устаревших функциях. – Tiny
@BalusC, да, я смотрю изнутри затмения. Я имею в виду, что TOMCAT не запускает проект. –