Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Вопрос по tomcat session и <distributable/>


Автор: AntUser 26.10.2009, 01:07
Привет всем!

Есть вопрос общего плана.
Дано: некое JEE приложение, которое при редеплое выкидывает эксепшен, что мол NPE где-то в сессии.

Небольшие раскопки по теме привели к тому, что в web.xml надо добавить  <distributable/>, т.к. это позволит персистить в файл текущие даные пользователя, пока идет редеплой самого ПО(например, полуавтоматическая смена версии).

Но тут возникла другая ошибка: java.lang.IllegalArgumentException: setAttribute: Non-serializable attribute

Как бы понятно - нечто, что включено в сессию не имплементит сериалайзбл. Но только вопрос, что именно и как это найти? Ни стектрейс, ни поиски в сгенеренных исходниках томкатом ответа не дали.

Собственно вопроса два:
1. Теория. Что вообще включается в сессию, где это смотреть? Правильно ли я понял ситуацию?
2. Как найти конкретный класс, который не имплементит сериалайзбл, т.к. стектрейс бесполезен(оно показал *.java, которую сгенерил по jsp, но это смотреть тоже оказалось по сути бесполезно)?

Пасиба ))

Автор: necromancer 27.10.2009, 14:03
ну можно взять и попробовать самому сериализовать все объекты сессии. На каком отвалится тот и твой

Автор: MisterCleric 27.10.2009, 14:15
Привет. Собственно, мы тоже сталкивались с такой задачей, когда настраивали кластер для приложение.
Так я по документации тоже прочитал, что необходимо добавить такой хинт в web.xml, что бы сессии могли сериализоваться и реплицироваться.
А то что мы ложим в сессию оказалось совсем просто:
Это были бины в spring-context со скоупом session ну и, естественно, все те биный, которыми они инжектятся - сервисы-синглетоны.
Естественно, что пришлось много чего implements Serializable
Пока проблем не видели. 
Пересматривай внимательно код, где и что ложиться в сессию. Как мы тебе тут поможем, если это твой код?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)