Java Reference
In-Depth Information
7.12.4
Obtaining the Data Source Connection
In order to use JNDI, it is necessary to import
javax.naming
. The name used when
referring to the data source within an application program must be identical to that
used in the
<res-ref-name>
tag within the Web application's deployment descriptor
(the
web.xml
fi le). In order to resolve the resource associated with this name, it is
necessary to obtain the JNDI context for the Web application. Getting the context
and resolving the resource requires the three steps shown below.
1. Get a reference to the 'initial context', which is the starting context for performing
naming operations. This is done simply by creating an
InitialContext
object.
For example:
Context initialContext = new InitialContext();
2. Get a reference to the Java environment variables (the 'Java context') by calling
method
lookup
on the above
InitialContext
object, supplying the method with the
string “java:comp/env”. This method will return an Object reference that must
be typecast into a Context reference. For example:
Context context =
(Context)initialContext.lookup("java:comp/env");
3. Call method
lookup
on the Java
Context
object returned above, supplying it
with the name of the required database, using the name that was supplied in
the
<res-ref- name>
tag within the deployment descriptor. This will need to be
typecast into a
DataSource
reference. For example:
dataSource =
(DataSource)context.lookup("jdbc/Finances");
Control code for the particular application will be provided by at least one
servlet. The code above
can
be placed inside the servlet's
init
method, as shown
in the example below.
Example
private DataSource dataSource;
public void init(ServletConfi g confi g)
throws ServletException
{
super.init(confi g);
//Carry out generic initialisation
try
{
Context initialContext = new InitialContext();
Context context =
(Context)initialContext.lookup(
Search WWH ::
Custom Search