tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christian Bourque <christian.bour...@gmail.com>
Subject Re: SessionContext lookup
Date Mon, 04 May 2009 19:29:04 GMT
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 <david.blevins@visi.com> 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 <david.blevins@visi.com>
>> 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 <david.blevins@visi.com>
>>>> 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
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>
>

Mime
View raw message