проблема параллелизма при попытке удалить в jpa - PullRequest
3 голосов
/ 08 января 2011

У меня есть 2 EAR 1_EAR и 2_EAR (у них есть веб-устройства и другой код). Теперь у меня есть 1 проект DB_prj, который используется для взаимодействия с базой данных. Теперь все проекты 1_EAR, 2_EAR, DB_prj имеют файл persistence.xml в соответствующих метаданных-inf folder. Теперь только 1_EAR и 2_EAR содержат web.xml.2_EAR - это новый проект, разработанный нашей командой.1_EAr работает нормально. Теперь, когда я пытаюсь удалить любую запись, используя разработанный класс, который я поместил в 2_EAR, мой код зависает и время ожидания. Чтобы удалить запись, я вызываю API из DB_prj, который отлично работает при вызове из 1_EAR.In web.xml.из 1_EAR и 2_EAR у меня есть следующие общие.В файле web.xml 1_EAR есть много других вещей, которых нет в файле web.xml файла 2_EAR.

<persistence-context-ref>
 <persistence-context-ref-name>persistence/XYZPersist</persistence-context-ref-name>
 <persistence-unit-name>XYZPersist</persistence-unit-name>
 </persistence-context-ref>

Может ли кто-нибудь помочь мне в решении этой проблемы? Приведенный выше код, который я поместил в файл web.xml2_EAR после того, как Сомоне ответил на мой пост @ проблема с JNDI

1 Ответ

0 голосов
/ 25 марта 2011

Моя ставка была бы в том, что ваш EAR # 2 разрешает контекст через JNDI, но контекст был связан EAR # 1 с загрузчиком классов EAR # 1;поэтому где-то в глубине API персистентности вы, вероятно, получите исключение ClassCastException, потому что класс, хотя и имеет одно и то же имя и пакет, был загружен другим загрузчиком классов.

Моя точка зрения заключается в том, что два EAR должны иметь разные JNDIимена для их единиц постоянства.Из вашего поста видно, что они одинаковые.

(На самом деле, упоминание о том, что вставка / обновление прекрасно работает, противоречит моей гипотезе, но кто знает.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...