Deployowanie JPA i EJB na serwerze jako osobne JAR'y - czy to możliwe?

0

Mam projekt EJB korzystającego z encji JPA (2.0). Projekt działa na serwerze gdy oba beany (EJB i JPA) podepnę do jednego EAR'a. Tak dla eksperymentu chciałem sprawdzić czy da się ten projekt uruchomić bez EAR'a. Wyeksportowałem projekt JPA do JAR i tak samo EJB i umieściłem w katalogu deploy. Serwer się odpala, deploy'uje EJB i klasy encji JPA. Potem gdy uruchamiam klienta to ładnie pobiera on referencję do EJB ale potem każde działanie metody EJB na JPA (dostęp do klasy encji) czy na bazie danych (np. Query przez Entity Managera typu " Select @@GLOBAL.tx_isolation;" czyli nie korzystąjace z JPA) kończy się fiaskiem (komunikat o nieznalezionej klasie encji czy błędny znak @ dla zapytania query).
Czy w ogóle można w ten sposób zdeployować projekt JPA ?
Jeżeli nie to jak inaczej ominąć EAR'a?

0

Nie mozna. Modul JPA to jest zwykly modul biblioteczny i musi nalezec do wiekszej calosci. Np. byc 'wtopiony' w modul EJB. Albo byc w WEB-INF/lib w webappie. Albo w /lib w EAR. Sam jest bezuzyteczny, nikt bowiem nie moze skorzystac z konfiguracji JPA ktora w sobie ma.
Mowie oczywiscie o specyfikacji, mozliwe ze sa serwery aplikacji ktore pozwalaja na taka magie, ale to nie jest przenosne.

0

Dzięki.
A jak osadzić JPA do projektu EJB w Eclipse? Pytanie może wydaje sie trywialne ale coś u mnie z tym nie działa. Mogę bez problemu stworzyć osobny projekt JPA ale nie wychodzi mi stworzenie ziarna JPA dla projektu EJB. W widoku projektów w Eclipse jak rozwinę stworzony projekt EJB to mam >> Deployment Descriptor a tam są trzy rodzaje ziaren do osadzenia:
Entity Beans (czyli chyba właśnie JPA powinny tu się umieszczać?)
Message_Driven Beans
Session Beans
Do tych dwóch dolnych kategorii nie ma problemu z dodaniem beanów bo klikam prawym przyciskiem myszki, potem "new">> i wybieram rodzaj beana. Ale dla Entity Beans nie ma co wybrać bo nie ma tam zdefiniowanego specjalnego beana który osadzałby się w tym projekcie EJB.
Eclipse mam w nowej wersji Indigo więc to nie chyba problem po stronie Eclipse.

0

Entity Beans to sa staroci z EJB 2.1 i starszych, to nie jest JPA.
Encje JPA to zwykle klasy z adnotacjami plus plik konfiguracyjny w pewnym miejscu, dla ejb jar to bedzie META-INF/persistence.xml. Jak to zrobisz to powinno zadzialac.

0

Dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1