#java #session #jsf-2
#java #сеанс #jsf-2
Вопрос:
Работа с JSF2 и Richfaces 4.0. Я уже несколько дней безуспешно пытаюсь отладить потерянный атрибут сеанса. У меня есть поток страниц, который переводит пользователя со страницы 1 на страницу 2, а затем обратно на страницу 1. Атрибут сеанса добавляется, когда пользователь нажимает кнопку для перехода на страницу 2. Этот атрибут используется на странице 2 и на странице 1, когда пользователь возвращается к нему. При отладке я вижу атрибут сеанса вплоть до страницы 2, но когда пользователь нажимает на кнопку на странице 2, чтобы вернуться на страницу 1, атрибут исчезает.
Я понятия не имею, почему это происходит. Я на 100% уверен, что добавляю атрибут к сеансу, а не к запросу. Я анализирую код уже несколько дней.
У меня есть другие страницы, где атрибуты добавляются к сеансу, и они работают нормально.
Любые предложения по отладке были бы полезны.
Комментарии:
1. Есть ли что-нибудь еще в вашем потоке запросов, что изменяет сеанс? Есть ли изменение HTTP / HTTPS? Вы работаете в кластеризованной среде? Кроме этого … мало что может пойти не так с атрибутами сеанса.
2. Нет, страница 2 загружает отчет в uiextendeddatable. Кнопка продолжить в конце отчета переводит пользователя на страницу 1, где атрибут исчезает.
Ответ №1:
Убедитесь, что браузер отправляет один и тот же файл cookie идентификатора сеанса при каждом запросе.
Для этого вы можете использовать Fiddler.
Комментарии:
1. Я проверил метод getId() сеанса при всех вызовах метода и его одинаковый идентификатор.
Ответ №2:
Моя ошибка. Пропущен фильтр, который удалил атрибут. Спасибо.
Комментарии:
1. Хех; да, подумал, что это будет что-то вроде этого… Жуткое действие на расстоянии иногда делает отладку болезненной.
Ответ №3:
В моем случае я переключался между защищенными и незащищенными страницами во время обработки, и это приводило к потере сеанса. Я убедился, что это был https (защищенный) полностью, и это устранило проблему.