어느 가을날의 전환점

JAVA|JNDI Datasource 사용하기 본문

Development

JAVA|JNDI Datasource 사용하기

어느가을빛 2010. 8. 17. 10:44
Tomcat 5.5에서의 <Context>
Tomcat 5.x 이후로는 server.xml에 <Context>를 직접 기술하지 않기를 권장합니다
그렇다면 <Context>를 다른곳에 기술해야 하겠죠.
* $CATALINA_HOME/conf/context.xml: 모든 웹어플리케이션에 로드됩니다.
$CATALINA_HOME/conf/[enginename]/[hostname]/context.xml.default: 호스트명에 속하는 모든 웹어플리케이션에 로드됩니다.
$CATALINA_HOME/conf/[enginename]/[hostname]/ 경로에 각각의 컨텍스트에해당하는 xml 파일을 만들 수 있습니다. 파일명은 '컨텍스트명.xml'로 지으면 되고 경로에 단계가 있다면 구분자로 #을사용하시면 됩니다. '예) abc/def -> abc#def.xml'
각 어플리케이션의 /META-INF/context.xml: 위에서 찾지 못했을 경우 애플리케이션 내부의 /META-INF/context.xml 파일이 로드됩니다.

Tomcat 5.5 에서 JNDI Datasource 사용하기

<?xml version="1.0"?>
<Context docBase="yourapp" path="/yourapp">
<Resource description="Test database connection"
name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="yourid" password="yourpw" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mydb?autoReconnect=true"/>
</Context>

import javax.naming.InitialContext;
import javax.sql.DataSource;

try {
    InitialContext initContext = new InitialContext();
    Context envContext = (Context)initContext.lookup("java:/comp/env");
    DataSource ds = (DataSource)envContext.lookup("
jdbc/TestDB"); //위에서 설정한 데이터소스의 name
    
    Connection conn = ds.getConnection();
    System.out.println(conn);
    conn.close();
} catch(Exception e) {
    e.printStackTrace();
}

Comments