Thanks. By using jndi name like "simple-ejb3/Echo/org.apache.openejb.examples.counter.ejb3.EchoRemote", client lookup success both ejb2 and ejb3 test.
But when I wrap this ejb jar in an ear, my test application failed again. What's correct jndi name in this case? Ueberbach, Michael wrote: > > Hi, > > I don't know exactly your situation, please check the following > conditions: > - you deployed a EJB 3.0 application in an xxx-ejb.jar > - you configured an openejb-jar.xml deployment plan where you set an > artifactId for your app, let's say "MyApp" > - you have a session bean you want connect to, let's say "MySessionBean" > - you have build a remote interface for your session bean (EJB 3.0 means a > simple interface), let's say "MySessionRemote" > > then the following is the right jndi name to get a connection to your bean > > "MyApp/MySessionBean/my.package.MySessionRemote" > > You have to use the fully qualified class name for the Interface! > > Regards > Michael > > > -----Ursprüngliche Nachricht----- > Von: wanyna [mailto:[EMAIL PROTECTED] > Gesendet: Freitag, 21. September 2007 11:47 > An: user@geronimo.apache.org > Betreff: ejb client jndi problem > > > I deploy ejb jar in geronimo2.0.1, this is a ejb2 test > http://www.nabble.com/file/p12813817/simple-ejb2-1.0.jar > simple-ejb2-1.0.jar , and this is a ejb3 test > http://www.nabble.com/file/p12813817/simple-ejb3-1.0.jar > simple-ejb3-1.0.jar . > > Both of them deploy no error. > > My client is a standalone application. Test code: > public class ClientTest { > > public static EchoRemote getEchoService(String url, > String contextFactory) throws Exception { > Context context = getInitialContext(contextFactory, url); > Object obj = context.lookup("Echo"); > return (EchoRemote) obj; > } > > public static CounterRemote getCounterService(String url, > String contextFactory) throws Exception { > Context context = getInitialContext(contextFactory, url); > Object obj = context.lookup("SuperCounterBusinessRemote"); > return (CounterRemote) obj; > } > > private static Context getInitialContext(String initContextFactory, > String url) throws Exception { > Properties properties = new Properties(); > properties.put(Context.INITIAL_CONTEXT_FACTORY, > initContextFactory); > properties.put(Context.PROVIDER_URL, url); > > return new InitialContext(properties); > } > > public static void main(String[] args) throws Exception{ > String url = "ejbd://localhost:4201"; > String factory = > "org.openejb.client.RemoteInitialContextFactory"; > EchoRemote echo = getEchoService(url, factory); > assert("cba".equals(echo.echo("abc"))); > // CounterRemote counter = getCounterService(url, factory); > // assert(counter.reset()==0); > // assert(counter.increment()==1); > // assert(counter.increment()==2); > // assert(counter.reset()==0); > } > > } > > exception: > Exception in thread "main" javax.naming.NameNotFoundException: /Echo does > not exist in the system. Check that the app was successfully deployed. > at org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:237) > at javax.naming.InitialContext.lookup(InitialContext.java:351) > at test.ClientTest.getEchoService(ClientTest.java:17) > at test.ClientTest.main(ClientTest.java:40) > > What's the right jndi name? > > I see some other messages talk about ejb jndi, but still can't resolve my > problem. > > I deploy ejb2 test in geronimo 1.x, client lookup no problem. > -- > View this message in context: > http://www.nabble.com/ejb-client-jndi-problem-tf4492931s134.html#a12813817 > Sent from the Apache Geronimo - Users mailing list archive at Nabble.com. > > -- View this message in context: http://www.nabble.com/ejb-client-jndi-problem-tf4492931s134.html#a12892325 Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.