![]() |
![]() |
||||
JNDI enables a Java program or JSP page to reference resources specified in or outside the application.
JNDI names are specified as a URI. They point to anything from simple strings to complex data structures such as a JDBC data source.
For example, here is a JSP <sql:query> tag that uses JNDI to access a data source. The data source object has a JNDI address of java:comp/env/jdbc/mydatabase. In JSP, this can be refered to simply as jdbc/mydatabase.
<sql:query var="result" dataSource="jdbc/mydatabase"> SELECT product_id, name, price FROM products </sql:query>
The following example references the same information using Java, which uses the full JNDI URI.
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mydatabase");
For both of the examples given above, the actual JDBC data source information is defined in META-INF/context.xml as a JNDI Resource.
JNDI Resources can be defined in:
An example context.xml is displayed below, containing a single JNDI Resource, of the type javax.sql.DataSource.
<?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="jdbc/mydatabase" auth="Container" type="javax.sql.DataSource" username="YOUR_USERNAME" password="YOUR_PASSWORD" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://mysql.metawerx.net:3306/YOUR_DATABASE_NAME?autoReconnect=true" validationQuery="select 1" maxActive="10" maxIdle="4"/> </Context>