Вызовы Ajax не обновляют тайм-аут сеанса на Tomcat 6

Я перенес свое веб-приложение с Tomcat 5.5 на Tomcat 6 (.0.32). В этом приложении есть вызовы ajax на каждой странице нижнего колонтитула, чтобы избежать тайм-аута сеанса. Он отлично работает на Tomcat 5.5, но не работает на Tomcat 6. Я использую фильтр для отслеживания каждого вызова в таблице БД. При вызовах без ajax я вижу отслеживание в таблице и тайм-аут сеанса сброса. При вызовах ajax я вижу отслеживание в таблице, но не сброс тайм-аута сеанса.

Почему? Могу ли я изменить это поведение? И, просто для информации, как Tomcat6 может различать вызовы ajax?


person mauretto    schedule 01.04.2011    source источник


Ответы (1)


Если вы не обращаетесь к сеансу явным образом в ответ на вызовы AJAX, вам может потребоваться установить org.apache.catalina.STRICT_SERVLET_COMPLIANCE системное свойство. Конечно, это может повлиять и на другие части вашего приложения. Другим вариантом было бы убедиться, что вы явно обращаетесь к сеансу...

person kschneid    schedule 01.04.2011
comment
В самом деле, просто сделать request.getSession() должно быть достаточно. См. также эту связанную тему. - person BalusC; 01.04.2011
comment
Спасибо обоим. Я прочитал о STRICT_SERVLET_COMPLIACNE и опасаюсь его последствий. Поэтому я буду использовать request.getSession() в этих вызовах (всего несколько небольших изменений). - person mauretto; 04.04.2011