본문 바로가기
Tomcat

JNDI 설정 및 사용하기 (TOMCAT5.5)

by 타블로 2008. 7. 14.

1. server.xml 파일에 아래 사항을 추가한다.
(적용하려는 <GlobalNamingResource> 또는 <Context>안에 : 두가지 중 아무거나)

ex 1)
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"
     driverClassName="com.mysql.jdbc.Driver"
     username="root" password="1234" url="jdbc:mysql://localhost:3306/spring"
     factory="org.apache.commons.dbcp.BasicDataSourceFactory"
     maxActive="10" maxIdle="5" maxWait="10000"
     removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"
/>
ex 2)
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource" />
<ResourceParams name="jdbc/mysql">

     <parameter>

          <name>driverClassName</name>
          <value>com.mysql.jdbc.Driver</value>
     </parameter>

     <
parameter>
          <name>username</name>
          <value>username</value>
     </parameter>

     <parameter>
          <name>password</name>
          <value>password</value>
     </parameter>

     <parameter>

          <name>url</name>
          <value>jdbc:mysql://localhost:3306/spring</value>
     </parameter>

     <parameter>
          <name>factory</name>
          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
     </parameter>

     <parameter>
          <name>maxActive</name>
          <value>10</value>
     </parameter>

     <parameter>
          <name>maxIdle</name>
          <value>5</value>
     </parameter>

     <parameter>
          <name>maxWait</name>
          <value>10000</value>
     </parameter>

     <parameter>
          <name>removeAbandoned</name>
          <value>true</value>
     </parameter>

     <parameter>
          <name>removeAbandonedTimeout</name>
          <value>60</value>
     </parameter>

     <parameter>
          <name>logAbandoned</name>
          <value>true</value>
     </parameter>

</ResourceParams> 

※ <GlobalNamingResource> 안에 추가했을 경우 context.xml에  다음을 추가할 것.
<ResourceLink name="jdbc/mysql" global="jdbc/mysql" type="javax.sql.DataSource"/>


2. web.xml 파일에 아래 사항을 추가한다.

<resource-ref>
<description>jdbc/mysql</description>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

3. Java 파일또는 JSP 파일에서 사용한다.

import javax.naming.*;
import java.sql.*;
import javax.sql.*;
.
.# 생략 #
.
Context ctx = new InitialContext();
Context ctx2 = (Context)ctx.lookup("java:comp/env");
DataSource ds = (DataSource)ctx2.lookup("jdbc/mysql");
Connection cn = ds.getConnection();