Skip to content
GitHub

Accès JNDI de JBoss

Pour accéder aux composants EJB déployés sous JBoss, voici un exemple de code. Il récupère le CorbasManager mais ça marche avec tout les EJB déployés.

// Get initial context of JNDI tree
Hashtable<String, String> w_param = new Hashtable<String, String>();
w_param.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
w_param.put(javax.naming.Context.PROVIDER_URL, "jnp://192.168.168.128:1099/"); 

javax.naming.Context ctx = new javax.naming.InitialContext(w_param);
			
// Get advanced pricing EJB home
Object obj = ctx.lookup("cic.CICCorbaManagerEJBHome");
cic.CICCorbaManagerEJBHome w_corbasHome =
	(cic.CICCorbaManagerEJBHome)javax.rmi.PortableRemoteObject.narrow(obj,cic.CICCorbaManagerEJBHome.class);
			
// Create a new advanced pricing session
cic.CICCorbaManagerEJB w_corbasManager = w_corbasHome.create("CORBAS");
			
System.out.println("Cleanup Status : "+w_corbasManager.getCleanupStatus());			
w_corbasManager.clearCache();
System.out.println("Cleanup Status : "+w_corbasManager.getCleanupStatus());

Pour lister les EJB de l’annuaire on peut faire comme ça :

Enumeration<NameClassPair> w_list = ctx.list("");
while (w_list.hasMoreElements()) {
	NameClassPair t_class = w_list.nextElement();
	System.out.println(t_class.getName());
}

ATTENTION Penser à faire un remove sur l’EJB à la fin pour ne pas générer un aspirateur de connexion, le Corbas étant limité !