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é !