Daily Notebook

[Spring] Tomcat JNDI 설정

by 배부른코딩로그

Spring Legacy에서는 DB 접근에 대한 특별한 작업이 없었다면, root-context.xml에 DataSource를 기입하게 됩니다.

 

위처럼 사용해도 큰 문제는 없습니다.

 

다만, 개발과 운영 DB가 나눠져 있다면 배포시에 일반적으로 DB DataSource를 변경해줘야 할 겁니다.

 

이 과정이 생각보다 귀찮습니다.

 

이럴 때, JNDI를 적극 활용할 수 있습니다.

 

Tomcat에 DB 접속 정보를 적어두고, 이를 Spring Legacy에서 가져다가 사용하는 방법입니다.

 

※ 괄호부분에 본인에게 필요한 정보를 기입하면 됩니다!

1. Tomcat : context.xml (DB Conn Data Resource)

아래의 예제는 한 개의 DataSource이지만, 여러 개의 DB DataSource를 넣으실 수 있습니다.

 

name property만 다르게 해주시면 됩니다.

<Resource
    name="(customName)"
    global="(customName)"
    auth="Container"
    type="javax.sql.DataSource"
    driverClassName="oracle.jdbc.OracleDriver"                         
    url="jdbc:oracle:thin:@(IP)(PORT)(SID)"
    username="(DB USERNAME)"
    password="(DB PASSWORD)"
    maxActive="100"
    maxIdle="30"
    maxWait="10000"
    validationQuery="SELECT 1 FROM DUAL"
    validationInterval="30000" 
/>

 

2. Tomcat : web.xml (DB Conn Ref)

tomcat의 web.xml에 기입해줘야 합니다.

<!-- DB Conn DataSource -->
<resource-ref>
    <description>DB Connection</description>
    <res-ref-name>(customName)</res-ref-name>                                        
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
    <description>DB Connection</description>
    <res-ref-name>(customName2)</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

 

3.JDBC Driver 다운로드 및 Tomcat lib 밑에 추가

Tomcat에서 DB Conn에 대한 JDBC Driver Lib 가 필요합니다.

 

Spring에서 사용했던 JDBC드라이버를 그대로 넣어주시면 됩니다.

 

4.Spring JDBC DataSource 설정

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="java:/comp/env/(customName)" />
</bean>

※ 'jndiName' 프로퍼티의 value에서 java:/comp/env/를 붙여주지 않으면 에러가 발생한다.

 

반응형

블로그의 정보

배부른코딩로그

배부른코딩로그

활동하기