Wołanie metod innej aplikacji Java EE

0

Jak ogarnąć możliwość wołania metod z innej aplikacji na tym samym serwerze aplikacyjnym.
Jeśli pakujemy do jednego ear'a to wystarczy zastosować Remote EJB, ale co jeśli chcemy wołać metody z aplikacji osobno umieszczanej na serwerze (jak wstrzyknąć taki bean)?

1

Dependency Injection of remote EJB references in not standardized więc zależy na jakim AS i w jakiej konfiguracji

1

W jbosss wszystko jest w JNDI, zazwyczaj app.ear#EJBName

0

serwer aplikacyjny wildfly :)

2

W jednym EARze nie musisz stosować @Remote, wystarczy też @Local, natomiast właśnie jak aplikacje są zdeployowane niezależnie to trzeba @Remote.
Składnia nazw JNDI jest podana np. tutaj:
https://docs.oracle.com/javaee/7/tutorial/ejb-intro004.htm#GIRGN

Od EJB3.1 można podać nazwę jndi jako wartość parametru lookup adnotacji @EJB, np:

@EJB( lookup="java:global[/earname]/ejbjarname/MojaKlasaEJB[!com.ejbs.MyEJBRemoteIface]")
MyEJBRemoteIface ejb;

to w nawiasach kwadratowych to opcjonalnie.
Glassfish i Wildfly chyba wyświetlają w logach w momencie deploymentu te nazwy jndi, więc wystarczy skopiować

0

Dzięki temat ogarnięty ;)

0

Można wyszukać interfejs lokalny w rejestrze JNDI nie musi być remote, nawet jak jest w innym EAR. Wystarczy JNDI lookup. Remote służy tylko do wyszukania w innym kontenerze EJB.

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