Я работаю над этой проблемой в течение 2 дней, и я надеюсь, что у кого-то есть аналогичная проблема и решение для этого.Tomcat создает новую сессию для каждого запроса
Проблема: Это Spring MVC (2.5.6.) Веб-приложение, которое работает в Tomcat 6. Когда начальная страница запрашивается перенаправляет клиента к JSP-страницы (с помощью мета-тегов HTML обновления экрана в) который загружает контент с большим количеством запросов Ajax (Framework: Prototype). Проблема в том, что Tomcat создает новый сеанс для каждого запроса AJAX (около 67 сеансов). Моя первая мысль заключалась в том, что Session Cookie хранится после загрузки начальной страницы и запросы Ajax заставляют Tomcat создавать новый сеанс. Мой подход заключался в том, чтобы вручную создать файл cookie сеанса, но это не имело никакого значения. Самое смешное, что он работает в некоторых других экземплярах tomcat, но не в желаемой среде для тестов интеграции. По-моему, это проблема конфигурации Tomcat.
После дальнейших исследований с Firebug, я узнал, что Tomcat создает новый сеанс для каждого запроса, даже если право JSESSIONID перетекает к нему (50B5EA0BCFE811C744CE9C1F9EDE0097):
Request Header 1:
Cookie JSESSIONID=F3206CBF2C961E125821FF22FA31A02D
Response Header 1:
Set-Cookie JSESSIONID=49E000B4D6880F4F94531AB9C78DB667; Path=/JOCA-Music-Portal JSESSIONID=50B5EA0BCFE811C744CE9C1F9EDE0097; Path=/JOCA-Music-Portal
Request Header 2:
Cookie JSESSIONID=50B5EA0BCFE811C744CE9C1F9EDE0097
Response Header 2:
Set-Cookie JSESSIONID=DCCA2D1B98D11223A6B8855800276E27; Path=/JOCA-Music-Portal
UPDATE: Дальнейшие исследования выделили проблему конфигурации Tomcat Realm. Мы используем JDBC Realm для входа. Когда логин деактивирован, создается только один сеанс. Если он активирован, Tomcat создает сеансы с недействительными/истекшими, поэтому с каждым запросом создается новый сеанс. Но почему Tomcat ведет себя так?
Я действительно в отчаянии, поэтому любая мысль/подсказка/решение хорошо оценены.
Большое спасибо
Вы получили решение? – 2012-07-24 07:47:56