As mentioned by other members, if you want to call the ejb in the managed instance, e.g. another ejb, servlet, jsf managed bean. You might need to configure to map the ejb to local naming context. There are some samples in the testsuite of geronimo.
If not, you could use the local initial context factory of OpenEJB. If you are not sure the name, in the past, I always try to invoke the list("") method to show what could be found in the context.
Thanks, I have already done that too. But all in vain........Still not finding any solutions.--On Mon, Jan 17, 2011 at 5:45 PM, Shawn Jiang <email@example.com> wrote:
try this:Properties p = new Properties(); p.put("java.naming.factory.initial", "org.apache.openejb.client.RemoteInitialContextFactory"); p.put("java.naming.provider.url", "ejbd://localhost:4201"); // user and pass optional p.put("java.naming.security.principal", "myuser"); p.put("java.naming.security.credentials", "mypass"); InitialContext ctx = new InitialContext(p); MyBean myBean = (MyBean) ctx.lookup("MyBeanRemote");--On Mon, Jan 17, 2011 at 6:12 PM, sanjay kumar <firstname.lastname@example.org> wrote:
I have already tried this. Any more suggestion.--On Mon, Jan 17, 2011 at 2:01 PM, David Jencks <email@example.com> wrote:
Hi Sanjay,IIUC you are trying to get to the ejb from a javaee app that is not part of the app containing the ejb?(if they are part of the same app your can use an ejb-link IIRC)I think you can either include a properties object in new InitialContext(properties) with the openejb jndi properties to use openejb jndi directly or include an ejb-ref or @EJB and use some configuration in the geronimo plan to refer to the ejb in the other app.hope this helps... it is not a complete answer but might point you in a useful direction.thanksdavid jencksOn Jan 17, 2011, at 12:03 AM, sanjay kumar wrote:
I am trying to call an EJB from a client that is itself deployed in same server i.e Geronimo 2.2. But I am getting Exception.
The code to call EJB is:
Context icontext=new InitialContext();
obj = icontext.lookup("ejbName");
And I am getting exception as:
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
I have @Local and @Remote annotations in the EJB. And it works properly when called from external client. I have tried iContext.lookup("ejb/beanrefname")
as well as all these:
Can anyone give me any idea how to accomplish this.?
How to lookup an EJB from client code that resides in same server.?
and all that...