You should use RMIInitialContextFactory. 
ApplicationClientInitialContextFactory is only for application clients.

Also - you cannot look up "java:comp/env/" from outside the container. 
Don't bother prepending it.

If you are using remote="true" for your ejbs, you do not need to look up 
the remote server yourself - this is done by the container.

The following document may be of help to you:
 
http://kb.atlassian.com/content/orion/docs/remote-access/remote-access.html

If you need further help - try asking a question on our forums:
   http://forums.atlassian.com

Cheers,
Scott

Chris Francis wrote:
> 
> I originally posted this at elephantwalker but have had little response,
> hopefully someone here has some ideas...
> 
> I'm trying to lookup a bean on a remote machine. I set up initial context in
> usual way using properties taken from the jndi.properties on the remote oc4j
> server. 
> In fact I want to lookup the bean from within a web-app (or ejb) installed
> on a local oc4j server. When I attempt it all I get is 
> NullPointerException: domain was null. 
> 
> Does anyone know what this means?
> 
> Some more info:
> I do the lookup programmatically. If I run it as a standalone client (not
> what I want to do) I get an error telling me the Factory can't find
> application-client.xml - this is not surprising as it's not on my classpath.
> Running from local container gives the error above. I have added an entry to
> orion-application.xml: 
> <ejb-module remote="true" path="myremoteapp-ejb" />
> and entries for the beans deployed there into my local oc4j servers'
> application-client.xml
> 
> Here's the code I'm using to do the lookup:
> Hashtable env = new Hashtable();
> env.put("java.naming.provider.url",
> "ormi://remotemachineIP:rmiport/myremoteapp");
> env.put ("java.naming.factory.initial",
> "com.evermind.server.ApplicationClientInitialContextFactory");
> env.put("java.naming.security.principal", "myremoteapp");
> env.put("java.naming.security.credentials", "password");
> 
> targetEJB_URI = "java:comp/env/" + targetEJB_URI;
> EJBHome ejbRef = null;
> Context ic = new InitialContext(env);
> 
> //ejbRef  = (EJBHome)PortableRemoteObject.narrow(ic.lookupLink
> (targetEJB_URI), EJBHome.class);
> ejbRef = (EJBHome) ic.lookupLink (targetEJB_URI);
> 
> One other thing is if I use the RMIInitialContextFactory instead then the
> context lookup works if I'm running as a standalone client. I then only get
> a naming exception since it can't see application-client.xml
> 
> Any help appreciated.
> 
> Thanks, 
> 
> Chris.
> 
> 


-- 
Scott Farquhar :: [EMAIL PROTECTED]

Atlassian :: http://www.atlassian.com
      Supporting YOUR J2EE World



Reply via email to