![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| drG100k |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 31.3.2006 Репутация: нет Всего: нет |
Здравствуйте, возникла проблема на ровном месте.
Есть 2 проекта: 1 - Набор EJB3, 2 - Web (Spring). Некоторые методы EJB возвращают коллекции JPA entity, таким образом этими entity (ями) Решили запаковать entity в отдельный jar и подкладывать в проекты. В проекте 1 всё работает как и предполагалось, а вот в Web приложении происходит что-то непонятное. НЕКОТОРЫЕ entity почему-то cannot be deserialized (как гласит exception) во время получения ответа на метод из EJB. Классы entity точно видны из Web, так как добрая часть entities ведёт себя правильно (т.е. как обычные DAO). Сейчас проблема решается следующим образом: из jar архива с entities классы распаковываются в .../WEB-INF/classes/ Web приложение перезапускается и проблема исчезает. Все мэппинги через аннотации, провайдер - Hibernate, ejb3 на JBoss, web-app на Tomcat. Как такое может быть? Что сделать чтобы web приложение ВСЕ классы entity "грузило" из внешнего jar архива? Спасибо. |
|||
|
||||
| eros2 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 31.5.2010 Репутация: нет Всего: нет |
Хотелось бы увидеть полный иксепшн. |
|||
|
||||
| drG100k |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 31.3.2006 Репутация: нет Всего: нет |
это смогу только завтра (12/07/2010) |
||||
|
|||||
| drG100k |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 31.3.2006 Репутация: нет Всего: нет |
Вот trace того, что происходит
|
|||
|
||||
| eros2 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 31.5.2010 Репутация: нет Всего: нет |
Я погуглил InvalidClassException и "class invalid for deserialization" - народ пишет, что это может быть из-за того, что в классе нет конструктора без параметров.
|
|||
|
||||
| drG100k |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 31.3.2006 Репутация: нет Всего: нет |
Быть не может, так как 1 из правил JPA Entity - это как раз конструктор без параметров (оно бы тогда на, наверное, на базу данных не замэпилось) + если класс есть в WEB-INF/classes, то эксепшн, каким-то чудом, пропадает Это сообщение отредактировал(а) drG100k - 12.7.2010, 15:58 |
|||
|
||||
| eros2 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 31.5.2010 Репутация: нет Всего: нет |
Согласно докам, этот иксепшн возникает в случаях:
* The serial version of the class does not match that of the class descriptor read from the stream * The class contains unknown datatypes * The class does not have an accessible no-arg constructor думаю, нужно рассматривать эти случаи. |
|||
|
||||
| drG100k |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 31.3.2006 Репутация: нет Всего: нет |
* The class contains unknown datatypes Вот это может быть, в каких-то классах есть Collection, Hibernate отправляет объект класса PersistentBag, но он вроде сериализуется так как AbstractPersistentCollection implements Serializable * The serial version of the class does not match that of the class descriptor read from the stream Все классы из одного архива, так что сразу отпадает. * The class does not have an accessible no-arg constructor JSR-317 The entity class must have a no-arg constructor. The entity class may have other constructors as well. The no-arg constructor must be public or protected. Если они получаются через EntityManager.find() значит все требования JSR-317 со словом "must" выполняются! Похоже, мне одному так повезло |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |