Ok... Would it be possible to do it using the new "openejb:" jndi url prefix?
Thanks Christian On Mon, May 4, 2009 at 1:19 AM, David Blevins <[email protected]> wrote: > Yes, that will give the namespace where you can lookup any ejb from any app. > > -David > > On May 3, 2009, at 7:32 PM, Christian Bourque wrote: > >> Ok but isn't there a global JNDI namespace in OpenEJB? Like in most >> other Java EE implementations... >> >> On Sun, May 3, 2009 at 9:50 PM, David Blevins <[email protected]> >> wrote: >>> >>> On May 3, 2009, at 5:31 PM, Christian Bourque wrote: >>> >>>> Hi David, >>>> >>>> I already know this method but I need to inject (lookup) ejbs >>>> dynamically so it is useless for me... >>>> >>>> I guess my only choice left is to use the 'new InitialContext()' >>>> alternative? >>> >>> Doing 'new InitialContext()' is going to get you the same JNDI namespace >>> that sessionContext.lookup() gives you, so that won't work for what you >>> need. >>> >>> You can use the LocalInitialContextFactory if you want to lookup any bean >>> deployed in the container system. >>> >>> Properties properties = new Properties(); >>> properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, >>> "org.apache.openejb.client.LocalInitialContextFactory"); >>> >>> initialContext = new InitialContext(properties); >>> >>> That will bypass the bean's private jndi namespace and hook you up with >>> the >>> generic "client" namespace. >>> >>> -David >>> >>> >>>> >>>> >>>> Thanks >>>> >>>> Christian >>>> >>>> On Sun, May 3, 2009 at 3:42 PM, David Blevins <[email protected]> >>>> wrote: >>>>> >>>>> Hi Christian, >>>>> >>>>> Try this: >>>>> >>>>> �...@stateless >>>>> public class OrangeBean implements OrangeLocal >>>>> { >>>>> >>>>> public String echo(String s) >>>>> { >>>>> return s; >>>>> } >>>>> } >>>>> >>>>> �...@ejb(name="orange", beanInterface = OrangeLocal.class) >>>>> �...@stateless >>>>> public class TestBean implements TestLocal >>>>> { >>>>> @Resource >>>>> private SessionContext sessionContext; >>>>> >>>>> public void test() >>>>> { >>>>> OrangeLocal orangeLocal = (OrangeLocal) >>>>> sessionContext.lookup("orange"); >>>>> } >>>>> } >>>>> >>>>> The @EJB annotation declares a reference to the Orange bean. The >>>>> sessionContext.lookup is a convenience method around 'new >>>>> InitialContext().lookup("java:comp/env/"+name)' and by default the >>>>> 'java:comp/env' namespace is empty unless references are declared via >>>>> annotation or xml. >>>>> >>>>> -David >>>>> >>>>> >>>>> On May 1, 2009, at 2:28 PM, Christian Bourque wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> What JNDI path should I use to lookup an EJB using a SessionContext >>>>>> which has been injected: >>>>>> >>>>>> @Stateless >>>>>> public class TestBean implements TestLocal >>>>>> { >>>>>> �...@resource >>>>>> private SessionContext sessionContext; >>>>>> >>>>>> public void test() >>>>>> { >>>>>> sessionContext.lookup("???"); >>>>>> } >>>>>> } >>>>>> >>>>>> I've tried different combinations without any success... >>>>>> >>>>>> Thanks >>>>>> >>>>>> Christian >>>>>> >>>>> >>>>> >>>> >>> >>> >> > >
