The Java EE 6 Tutorial, Volume I

Portable JNDI Syntax

There are three JNDI namespaces used for portable JNDI lookups: java:global, java:module, and 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 only required if the application is packaged within an EAR. The interface name is only required if the enterprise bean implements more than one business interface.

The java:module namespace is used to lookup 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 interface name is only required if the enterprise bean implements more than one business interface.

The java:app namespace is used to lookup 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. The interface name is only required if the enterprise bean implements more than one business interface.


Example 14–1 JNDI Address of an Enterprise Bean Packaged Within a WAR File

If an enterprise bean, MyBean, is packaged in 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