hi, i got my ejb's up and running
in my web project i call them like that | TraxManager TraxManager = (TraxManager)context.lookup("TraxService/remote"); | in my web project i implement this call in each of managed beans, which no an optimal solution so i try to do a generic method ==> | import java.util.Collections; | import java.util.HashMap; | import java.util.Map; | import java.util.Properties; | | import javax.ejb.EJBHome; | import javax.naming.Context; | import javax.naming.InitialContext; | import javax.naming.NamingException; | | public class EJBHomeFactory { | | private static Map<String, Object> cache=Collections.synchronizedMap(new HashMap());; //used to hold references to EJBHomes/JMS Resources for re-use | | | private EJBHomeFactory() throws ServiceLocatorException { | try { | //THIS DOESN'T GET EXECUTED :( | cache = Collections.synchronizedMap(new HashMap()); | } catch (Exception e) { | throw new ServiceLocatorException(e); | } | } | | | public static Object lookupObject(String jndiName) throws ServiceLocatorException { | EJBHome home = null; | Context context = null; | | try { | if (cache.containsKey((Object)jndiName)) { | return cache.get(jndiName); | } else { | Properties props = new Properties(); | props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory"); | props.setProperty("java.naming.provider.url", "jnp://192.168.1.201:1099"); | props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming"); | props.setProperty("jnp.socket.Factory", "org.jnp.interfaces.TimedSocketFactory"); | context = new InitialContext(props); | //Object obj = context.lookup(jndiName); | cache.put(jndiName, context.lookup(jndiName)); | } | } catch (NamingException ne) { | throw new ServiceLocatorException(ne); | } catch (Exception e) { | throw new ServiceLocatorException(e); | } | return cache.get(jndiName); | | } | | | | public Map<String, Object> getCache() { | return cache; | } | | | | public void setCache(Map<String, Object> cache) { | EJBHomeFactory.cache = cache; | } | | | } | | | i test with 2 class, so that the first one , fill the map and the second should find a a map with the key of the jndi name , but it never found it, | if (cache.containsKey((Object)jndiName)) { | return cache.get(jndiName); | } is never executed and thanks View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4266404#4266404 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4266404 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user