Ucho vs oddzielna EJB + wojna

Jaka jest różnica we wdrożeniu aplikacji jako EAR (z 1 EJB i 1 modułem WAR) w porównaniu z oddzielnymi modułami? Chcę użyć profilu internetowego GlassFish 3, ale nie obsługuje on EAR archive. Czy Mogę używać EJB i WAR jako oddzielnych modułów? Jakieś inne opcje?

Author: Tiny, 2011-08-06

2 answers

Wydaje się być pewne zamieszanie pomiędzy 3 wariantami rozmieszczenia:

  1. ucho, które zawiera moduł EJB i WEB
  2. wdrażanie oddzielnego modułu EJB i oddzielnego modułu WWW
  3. wdrażanie modułu internetowego zawierającego klasy EJB lub jar EJB.

W pierwszej sytuacji masz logicznie jedną aplikację, ale podzieloną na dwa poziomy. Moduł WEB jest odizolowany od modułu EJB w tym sensie, że może korzystać z klas z modułu EJB, ale moduł EJB nie może korzystać z klas z modułu WEB. Ponieważ jest to pojedyncza aplikacja, lokalny dostęp do EJB beans może być używany, a Wtrysk EJB Beans działa zgodnie z oczekiwaniami.

W drugiej sytuacji (do której zdaje się odnosisz się w swoim pytaniu) nie ma logicznej pojedynczej aplikacji, ale tak naprawdę dwa oddzielne moduły. Działają one w tym samym JVM, ale oficjalnie Java EE nie pozwala na korzystanie z dostępu lokalnego i dostęp zdalny musi być używany (choć praktycznie dostęp lokalny często i tak działa). Ponadto, wstrzyknięcie EJB beans w module internetowym nie działa bezpośrednio z prostą adnotacją @EJB, ale zamiast tego należy użyć atrybutu lookup, który określa globalną nazwę JNDI.

Wreszcie, trzecia sytuacja (o której chyba nie wspominasz, ale "home" wspomina) jest trochę podobna do pierwszej, ale nie ma w tym przypadku poziomów i izolacji. EJB beans może uzyskać dostęp do wszystkich klas bezpośrednio z reszty modułu WWW.

Profil www obsługuje tylko tę ostatnią sytuację wdrożenia. Zarówno EAR, jak i samodzielne wdrożenia EJB nie są obsługiwane.

 32
Author: Arjan Tijms,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-06 22:52:44

Jaka jest różnica we wdrożeniu aplikacji jako ear (z 1 ejb i 1 modułem wojennym) w porównaniu z oddzielnymi modułami?

Nie pełna lista: w uchu można zdefiniować słoiki użytkowe jak również znajdują się w np. EAR/lib i mogą być ponownie użyte przez WARs i EJB JARs. Często pliki EAR zapewniają funkcje prorietary deployment, np. w WebSphere można określić szczegóły DataSource, dzięki czemu nie trzeba definiować źródła danych (i sterownika JDBC) za pomocą utylizatorów zarządzania.

Ponieważ chcę użyć Glassfish 3 web profile, ale nie obsługuje ear archive. Czy Mogę używać ejb i war jako oddzielnych modułów? Jakieś inne opcje?

Tak, Specyfikacja profilu www wyraźnie pozwala na wdrożenie lekkiej wersji EJB w ramach WAR . Wystarczy umieścić EJB JAR wewnątrz WARs WEB-INF/lib. Ten link zapewnia Porównanie funkcji (profil internetowy vs full-blown): http://glassfish.java.net/downloads/v3-final.html

 3
Author: home,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-06 18:26:36