Thanks for the examples - Is there any difference between the Context Lookup in an EJB-JAR vs an EAR ?
I'm still getting a naming exception and I followed both the examples exactly. Here are some files associated with my configuration = --------------- If my geronimo-application.xml = <?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://geronimo.apache.org/xml/ns/j2ee/application-1.2"> <environment xmlns="http://geronimo.apache.org/xml/ns/deployment-1.2"> <moduleId> <groupId>com.mydomain.ejbtest</groupId> <artifactId>EjbTest</artifactId> <version>1.0o</version> <type>ear</type> </moduleId> </environment> </application> --------------- openejb-jar.xml = <?xml version="1.0" encoding="UTF-8"?> <openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1"> <environment xmlns="http://geronimo.apache.org/xml/ns/deployment-1.2"> <moduleId> <groupId>com.mydomain.ejbtest</groupId> <artifactId>TheEJB</artifactId> <version>1.1</version> <type>car</type> </moduleId> <dependencies> <dependency> <groupId>com.mydomain.ejbtest</groupId> <artifactId>MyQueueConnectionFactory</artifactId> <version>1.0</version> <type>rar</type> </dependency> <dependency> <groupId>com.mydomain.ejbtest</groupId> <artifactId>MysqlDatabase</artifactId> <version>1.0</version> <type>rar</type> </dependency> </dependencies> <hidden-classes/> <non-overridable-classes/> </environment> </openejb-jar> --------------- The EJB Bean = @Stateless(name="TheBean") @Remote(TheInterface.class) public class TheBean implements TheInterface{ --------------- The Interface = @Remote public interface TheInterface { --------------- The Client = Properties ejbprop = new Properties(); ejbprop.put("java.naming.factory.initial","org.apache.openejb.client.RemoteInitialContextFactory"); ejbprop.put("java.naming.provider.url", "ejbd://127.0.0.1:4201"); javax.naming.InitialContext ctx = new javax.naming.InitialContext(EJBprops); TheInterface obj = (TheInterface)ctx.lookup("TheEJB/TheBean/com.mydomain.ejbtest.TheInterface"); Jarek Gawor-2 wrote: > > I have some tests in Geronimo that might help. > > If you have a EJB 2.x take a look at: > http://svn.apache.org/viewvc/geronimo/server/trunk/testsuite/webservices-testsuite/jaxrpc-tests/jaxrpc-ejb/ > > And for the client take a look at the testEJB() function in > http://svn.apache.org/viewvc/geronimo/server/trunk/testsuite/webservices-testsuite/jaxrpc-tests/jaxrpc-ejb/src/test/java/org/apache/geronimo/testsuite/testset/JaxRPCTest.java?view=markup > > If you have EJB 3.0 take a look at: > http://svn.apache.org/viewvc/geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-tests/jaxws-ejb/ > > And for the client take a look at the testEJB() function in > http://svn.apache.org/viewvc/geronimo/server/trunk/testsuite/webservices-testsuite/jaxws-tests/jaxws-ejb/src/test/java/org/apache/geronimo/testsuite/testset/JaxWSTest.java?view=markup > > Jarek > > On 9/14/07, vrm <[EMAIL PROTECTED]> wrote: >> >> I'm having the exact same issue. I've spent 2 days looking around and >> there >> is no examples or documentations available for a Remote openejb client >> accessing an EJB on Geronimo 2. >> >> Anybody have an EAR for Geronimo2 and an Openejb-Client app accessing it? >> >> The Exception I get = >> javax.naming.NameNotFoundException: /TheBean does not exist in the >> system. >> Check that the app was successfully deployed. >> >> I've tried the following for InitialContext.lookup = >> (artifactid)/(TheBean)/(TheInterface) >> (artifactid)/(Interface) >> (ejbBean)/(Interface) >> (artifactid)/(TheBean)/(Full Path to Interface) >> ...and many more variations of this >> >> >> My EJB Interface = >> >> @Remote >> public interface TheInterface { >> >> >> My Bean = >> @Stateless >> public class TheBean implements TheInterface { >> >> >> Anybody get this to work or have examples, please post. >> >> >> >> >> Xiao-fei Song wrote: >> > >> > Hi, >> > >> > Just wanted to let you know I modified a little bit about the code: >> > >> > props.setProperty("java.naming.factory.initial", >> > "org.apache.openejb.client.RemoteInitialContextFactory"); >> > props.setProperty("java.naming.provider.url", >> "127.0.0.1:4201"); >> > props.setProperty("java.naming.security.principal", "system"); >> > props.setProperty("java.naming.security.credentials", >> "manager"); >> > >> > Context ic = new InitialContext(props); >> > System.out.println("ic = " + ic); >> > >> > Object objRef = ic.lookup("MySessionRemoteHome"); >> > System.out.println("objRef = " + objRef); >> > >> > test.abc.MySessionRemoteHome home = >> > (test.abc.MySessionRemoteHome)PortableRemoteObject.narrow(objRef, >> > test.abc.MySessionRemoteHome.class); >> > System.out.println("home = " + home); >> > >> > test.abc.MySessionRemote remote = home.create(); >> > System.out.println("remote = " + remote); >> > >> > String message = remote.getString(); >> > System.out.println("message = " + message); >> > >> > >> > and it works okay on geronimo 1.2 beta. So this really makes me >> confused, >> > is this a regression or intended to be. Can someone in this alias >> please >> > respond me? >> > >> > Thanks, >> > Chris >> > >> > >> > Xiao-fei Song wrote: >> >> >> >> Hi Mark, >> >> >> >> Thanks for your response. >> >> >> >> 1. For the time being, I don't really care if the client is really >> >> "remote". From my tests, it looks like only "127.0.0.1" is accepted >> >> otherwise the connects just failed. I don't know where the >> documentation >> >> can be found on this. >> >> >> >> 2. Yes I assume all the libraries are there for the EJB call. And they >> >> are: >> >> >> >> cglig-nodep >> >> geronimo-kernel >> >> openejb-core >> >> openejb-client >> >> j2ee.jar (from j2ee ri) >> >> >> >> 3. Unfortunately it does not work with "ejb/MySessionRemoteHome" and >> here >> >> is what I got: >> >> >> >> ic = [EMAIL PROTECTED] >> >> Exception in thread "main" javax.naming.NameNotFoundException: >> >> /ejb/MySessionRemoteHome does not exist in the system. Check that the >> >> app was successfully deployed. >> >> at >> >> org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:231) >> >> at javax.naming.InitialContext.lookup(Unknown Source) >> >> at apachegclient.TestClient.main(TestClient.java:43) >> >> >> >> >> >> I would say my first experiences with Genonimo is frustrated because I >> >> just spent a whole day on a very simple task. Anyway, if you have the >> >> sample code (both the ejb and the ejb client) that works with geronimo >> >> v2, please send it to my email address. >> >> >> >> Thanks, >> >> Chris >> >> >> >> >> >> >> >> Mark Aufdencamp wrote: >> >>> >> >>> Hi Chris, >> >>> >> >>> I'll give it a shot at helping you. I've been able to do this thanks >> to >> >>> much help from others on this list. >> >>> >> >>> Are you truly doing this as a remote client from a different machine >> >>> than the server? If so, the IP addres your using for the naming >> >>> provider should be the server address, rather than the local loopback >> >>> address. >> >>> >> >>> Do you have all of the required remote client libraries in the class >> >>> path for the remote EJB call? I can look back at my notes and >> provide >> >>> these if you need them. >> >>> >> >>> I believe the remote name will probably be proceeded by "ejb". As in >> >>> "ejb/MySessionRemoteHome". >> >>> >> >>> I can dig up some code of my own that works if you'ld like. >> >>> >> >>> Hope this helps some. >> >>> >> >>> Mark Aufdencamp >> >>> [EMAIL PROTECTED] >> >>> >> >>>> -------- Original Message -------- >> >>>> Subject: jndi lookup in remote client for geronimo v2 >> >>>> From: Xiao-fei Song <[EMAIL PROTECTED]> >> >>>> Date: Fri, June 29, 2007 7:04 am >> >>>> To: [email protected] >> >>>> >> >>>> Hi guys, >> >>>> >> >>>> I have developed an EJB 2.x stateless session using netbeans, and I >> >>>> want to write a very simple stand alone ejb client to access it in >> >>>> geronimo v2. The code looks like below: >> >>>> >> >>>> >> >>>> props.setProperty("java.naming.factory.initial", >> >>>> "org.openejb.client.RemoteInitialContextFactory"); >> >>>> props.setProperty("java.naming.provider.url", >> >>>> "127.0.0.1:4201"); >> >>>> //props.setProperty("java.naming.security.principal", >> >>>> "testuser"); >> >>>> //props.setProperty("java.naming.security.credentials", >> >>>> "testpassword"); >> >>>> >> >>>> Context ic = new InitialContext(props); >> >>>> System.out.println("ic = " + ic); >> >>>> >> >>>> Object objRef = ic.lookup("MySessionRemoteHome"); >> >>>> >> >>>> I read the documentation and it looks like the only way to lookup in >> >>>> the remote client is through jndi-name in openejb-jar.xml. And I >> have >> >>>> done that as below: >> >>>> >> >>>> <?xml version="1.0"?> >> >>>> <openejb-jar >> >>>> xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1" >> >>>> xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.1" >> >>>> xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2"> >> >>>> >> >>>> <enterprise-beans> >> >>>> <session> >> >>>> <ejb-name>MySessionBean</ejb-name> >> >>>> <jndi-name>MySessionRemoteHome</jndi-name> >> >>>> </session> >> >>>> </enterprise-beans> >> >>>> </openejb-jar> >> >>>> >> >>>> After the ejb is deployed to geronimo, I ran the client and found >> >>>> below error: >> >>>> >> >>>> ic = [EMAIL PROTECTED] >> >>>> Exception in thread "main" javax.naming.NameNotFoundException: >> >>>> /MySessionRemoteHome does not exist in the system. Check that the >> app >> >>>> was successfully deployed. >> >>>> at >> >>>> org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:231) >> >>>> at javax.naming.InitialContext.lookup(Unknown Source) >> >>>> at apachegclient.TestClient.main(TestClient.java:43) >> >>>> >> >>>> >> >>>> Anyone has any idea what's going on? >> >>>> >> >>>> Thanks, >> >>>> Chris >> >>>> >> >>>> >> >>>> --------------------------------- >> >>>> Ready for the edge of your seat? Check out tonight's top picks on >> >>>> Yahoo! TV. >> >>>> >> >>>> --------------------------------- >> >>>> Now that's room service! Choose from over 150,000 hotels >> >>>> in 45,000 destinations on Yahoo! Travel to find your fit. >> >>> >> >>> >> >>> >> >> >> >> >> > >> > >> >> -- >> View this message in context: >> http://www.nabble.com/jndi-lookup-in-remote-client-for-geronimo-v2-tf3999496s134.html#a12680611 >> Sent from the Apache Geronimo - Users mailing list archive at Nabble.com. >> >> > > -- View this message in context: http://www.nabble.com/jndi-lookup-in-remote-client-for-geronimo-v2-tf3999496s134.html#a12682887 Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.
