May 5, 2018

Three JNDI namespaces are used for portable JNDI lookups

  1. java:global, 
  2. java:module, 
  3. java:app.

The java:global JNDI namespace is the portable way of finding remote enterprise beans using JNDI lookups. 

JNDI addresses are of the following form:

java:global[/application name]/module name/enterprise bean name[/interface name]

Application name and module name default to the name of the application and module minus the file extension. Application names are required only if the application is packaged within an EAR.

The java:module namespace is used to look up local enterprise beans within the same module. 

JNDI addresses using the java:module namespace are of the following form:

java:module/enterprise bean name/[interface name]

The java:app namespace is used to look up local enterprise beans packaged within the same application. 

That is, the enterprise bean is packaged within an EAR file containing multiple Java EE modules. JNDI addresses using the java:app namespace are of the following form:

java:app[/module name]/enterprise bean name[/interface name]
The module name is optional.

For example, if an enterprise bean, MyBean, is packaged within the web application archive myApp.war, the module name is myApp. The portable JNDI name is java:module/MyBean An equivalent JNDI name using the java:global namespace is java:global/myApp/MyBean.

The interface name is required only if the enterprise bean implements more than one business interface.