Home > Glassfish, Java > EJBRemote standalone client

EJBRemote standalone client

Ho bisogno di scrivere una piccola classe di test, senza troppe complicazioni, che verifichi il corretto funzionamento di una facade esposta come remote EJB da Glassfish 3.

La strada piu’ veloce e’ quella di creare una classe Java, fare una lookup sull’albero JNDI, ottenere il riferimento all’EJB remote e chiamare il metodo di business.

Quando il servizio remoto e’ esposto dalla stessa macchina sulla quale viene eseguito il client, per ottenere il riferimento e chiamare l’EJB bastano poche righe di codice:

final String globalJndiName = “java:global/a2props-service-ear/a2props-service-ejb/UserProfileCrudServiceBean!it.xxx.yyy.a2.profile.services.user.UserProfileCrudServiceRemote”;

// get ejb remote reference
final javax.naming.InitialContext context = new javax.naming.InitialContext();
final UserProfileCrudServiceRemote service = (UserProfileCrudServiceRemote) context.lookup(globalJndiName);

// call ejb business method
final UserProfile userProfile = new UserProfile(“diuis”);
service.create(userProfile);

Nel momento in cui ho invece la necessita’ di eseguire il client da una macchina differente, mi basta utilizzare il costruttore della classe InitialContext che accetta in input un’istanza di java.util.Properties (anche se dovrei dire java.util.Hashtable…) per poter settare l’hostname e la porta dell’ORB listener.

final String globalJndiName = “java:global/a2props-service-ear/a2props-service-ejb/UserProfileCrudServiceBean!it.xxx.yyy.a2.profile.services.user.UserProfileCrudServiceRemote”;

// get ejb remote reference
final Properties properties = new Properties();
properties.setProperty(“org.omg.CORBA.ORBInitialHost”,”codesharing.wordpress.com”);
properties.setProperty(“org.omg.CORBA.ORBInitialPort”, “4837”);
final InitialContext context = new InitialContext(properties);
final UserProfileCrudServiceRemote service = (UserProfileCrudServiceRemote) context.lookup(globalJndiName);

// call ejb business method
final UserProfile userProfile = new UserProfile(“diuis”);
service.create(userProfile);

Per eseguire correttamente la chiamata all’EJB e’ necessario aggiungere al classpath del client standalone uno dei JAR forniti da Glassfish, ovvero gf-client.jar, che potete trovare nella lib dell’application server; infatti, nel caso in cui non venga trovato il JAR nel classpath, verra’ lanciata una bellissima java.lang.RuntimeException (Orb initialization erorr).

Buon test a tutti.

  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Lascia un commento

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: