| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Как победить PersistentObjectException? |
| Автор: diablero 8.5.2008, 18:59 | ||||||
| Есть два объекта Client и Hit. Которые имеют связи один ко многим и многие к одному. Объект Client создается при создании сессии и живет вместе с ней, содержит данные о пользователе. Объект Hit создается при каждом обращении к ресурсу. Код в котором создается Client:
Все вместе в контроллере:
В настройках Томката параметр autoDeploy равен "true". Проблема в следующем: Если продеплоить какой-то класс или перезагрузить Томкат, то от всех клиентов которые в этот момент обращались к ресурсу валятся эксепшены:
И помогает только если закрыть браузер, и заново открыть. Т.е. как я понял, при деплое все активные сессии живы, но почему и при рестарте, мне так и осталось не ясным. Как это решить я пока не знаю... |
| Автор: Stampede 8.5.2008, 21:41 | ||
| А дело в том, что сессия живучее сервера Победить это дело несложно. В файле tomcat/conf/context.xml есть такие строчки:
Раскомментируй эту настройку, и будет тебе щастье |
| Автор: diablero 8.5.2008, 23:44 |
| Я хотел найти вариант, который не требует вмешательства в конфиг сервера. И вроде нашел. Для объектов, которые изменяются в пределах не одной транзакции, нужно использовать метод merge() класса EntityManager, а не persist. |