![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
ki6opr |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 20.12.2006 Репутация: нет Всего: нет |
Доброго времени суток всем.
В общем возникла какая то непонятная для меня проблемма. Есть сервер Jboss 5 на него задеплоин EAR в котором есть сешн бин
проблемма в том что через @PersistenceContext(unitName = "domainPU") инжектится null, но если создавать EntityManager ручками через фабрику то все замечательно работает. persistence.xml
в гугле вагон примеров, где просто люди ошибались и создавали сешн бины руками, это не мой случай ![]() PS сначала были ошибки что хибернэйту нужен был доступ к transactionManager'у, поправил и через руками созданного entitymanager запросы к базе выполняются. |
||||
|
|||||
Maksym |
|
||||||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 24 Всего: 62 |
Проблема в том, что аппликейшн сервер на знает от твоем persistence unit'е и не соображает как его заинжектить. Ему надо помочь.
Для этого объявим простой data source, о котором будет знать JBoss. Если ты запускаешь его в дефолтной конфигурации, то для этого нужно положить дескриптор data source'а в server/default/deploy. Вот пример такого дескриптора для postgresql (для mysql полная аналогия):
Теперь об источнике данных JBoss'у извесно. После этого в в META-INF/persistence.xml твоего EJB проекта нужно объявить persistence-unit, который использует этот глобальный data source. Например так:
После этого инжектить entity manager в любом ejb можно без дополнительных параметров:
Это сообщение отредактировал(а) Maksym - 25.5.2010, 10:37 |
||||||
|
|||||||
ki6opr |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 20.12.2006 Репутация: нет Всего: нет |
Спасибо Maksym.
в общем я все поборол, но не таким образом. почему то когда грузилось приложение, коряво подгружался jar с сущностями и персистент юнитом, который лежит в нем. entity грузились а вот юнит нет. я так подозреваю что когда я пытался создавать руками EntityManager то ear сканировался (могу только предполагать) и persistent unit находился , подгружался и все создавалось. решилось дописыванием jar'a с сущностями в application.xml в качестве модуля
просто приходится писать под два сервера (Glassfish и JBoss) и постоянно вылазиют всякие костыли, к примеру с таким дескриптором как выше глассфиш сломается, для него domain-ejb.jar нужно указывать как библиотеку а не модуль. Это сообщение отредактировал(а) ki6opr - 26.5.2010, 06:49 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |