Come funzionano le interfacce remote con JavaEE e glassfish?

1

Vorrei sapere cosa sta succedendo "sotto il cofano" se utilizzo interfacce remote in JavaEE. Nel progetto utilizzo un bean enterprise stateless che implementa un'interfaccia remota. E posso chiamare i metodi in questa interfaccia remota da un client (tutto gira sullo stesso server glassfish ma dovrebbe funzionare anche da una macchina diversa).

L'interfaccia remota si trova all'interno di una libreria di classi Java, il bean enterprise e il client includono entrambi questa libreria, ma solo nel bean viene implementata.

Sono abbastanza nuovo per JavaEE e glassfish. So che c'è un contenitore che gestisce i fagioli e un sacco di cose che rendono tutto super facile, ma non so ancora cosa succede dietro le quinte. Potresti fornirmi una breve descrizione di cosa succede durante una chiamata remota? Penso che debba fare qualcosa con JNDI. E se avessi iniziato il mio cliente su una macchina completamente diversa, come avrebbe trovato JNDI il mio bean sull'altra macchina? (Dato che uso netbeans con glassfish non ho dovuto configurare nulla in glassfish)

Grazie!

EDIT: utilizzo l'injection dependency, quindi tutto ciò di cui ho bisogno per accedere al bean è l'annotazione @EJB (funziona a causa della libreria di classi)

    
posta Puckl 24.02.2013 - 19:00
fonte

1 risposta

3

RMI è lo standard per l'elaborazione di oggetti distribuiti in Java. Un EJB con un'interfaccia remota è un oggetto RMI. RMI consente a un'applicazione di ottenere riferimenti ad altri oggetti posizionati altrove nella rete e di richiamare il metodo su quell'oggetto come se fosse collocato con il client sulla stessa JVM localmente nella macchina virtuale del client. Sul lato server, il codice byte (stub) viene generato al volo per le classi remote e queste classi generate dinamicamente sono associate a JNDI. Sul lato client viene generato anche un proxy per le interfacce remote. Le chiamate ai proxy vengono instradate allo stub. La risoluzione del servizio di denominazione deve ancora essere configurata sul client remoto

    
risposta data 25.02.2013 - 15:45
fonte

Leggi altre domande sui tag