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.