JBoss Community

[AS7.1.1] EJB JNDI Lookup confusion: remote vs local

created by Philipp Nanz in JNDI and Naming - View the full discussion

Hi all,

 

I have read the docs regarding remote JNDI lookup, but somehow it doesn't seem to match my first-hand experiences. I hope someone can clear this up for me.

 

My application basically looks like this:

 

Business.ear

-- service.jar (EJB JAR)

-- web.war

 

Additionally, there is an remote client talking the app using EJB remoting...

 

 

1) Local JNDI lookup (used inside the JAR and partially in the WAR):

 

JNDI name: java:global/Business/service/FooEJB!foo.bar.ServiceLocal

 

This works nicely, always.

 

2) Remote JNDI lookup, from within the WAR:


InitialContext is basically empty in this scenario.

 

JNDI name: ejb:Business/service/FooEJB!foo.bar.Service

 

This works as well, but there are two strange(?) differences compared to the local lookup:

The prefix must be 'ejb:', 'java:' doesn't work. Also it doesn't work with 'global/' (or any other scope). Ok, I admit, this may be a remote thing, but still I'm wondering...

 

3) Remote JNDI lookup, from external application:

 

InitialContext:

java.naming.factory.initial=org.jboss.naming.remote.client.InitialContextFactory

java.naming.provider.url=remote://somehost:4447

jboss.naming.client.ejb.context=true

 

JNDI name: java:Business/service/FooEJB!foo.bar.Service

 

Now it's getting crazy. This works as well, but as you see I need to use 'java:' prefix. With 'ejb:' prefix I get the dreaded NameNotFoundException :(

 

 

Can anyone make any sense of this?!

 

Thanks in advance!

Reply to this message by going to Community

Start a new discussion in JNDI and Naming at Community