| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 Пока проблем не видели. Пересматривай внимательно код, где и что ложиться в сессию. Как мы тебе тут поможем, если это твой код? |