Resources and JNDI Naming
In a distributed application, components need to access other components and resources, such as databases. For example, a servlet might invoke remote methods on an enterprise bean that retrieves information from a database. In the Java EE platform, the Java Naming and Directory Interface (JNDI) naming service enables components to locate other components and resources.
A resource is a program object that provides connections to systems,
such as database servers and messaging systems. (A Java Database
Connectivity resource is sometimes referred to as a data source.) Each
resource object is identified by a unique, people-friendly name, called
the JNDI name. For example, the JNDI name of the preconfigured JDBC
resource for Apache Derby shipped with GlassFish Server
An administrator creates resources in a JNDI namespace. In GlassFish
Server, you can use either the Administration Console or the
A resource object and its JNDI name are bound together by the naming and
directory service. To create a new resource, a new name/object binding
is entered into the JNDI namespace. You inject resources by using the
You can use a deployment descriptor to override the resource mapping that you specify in an annotation. Using a deployment descriptor allows you to change an application by repackaging it rather than by both recompiling the source files and repackaging. However, for most applications a deployment descriptor is not necessary.