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/를 붙여주지 않으면 에러가 발생한다.

 

반응형
블로그의 프로필 사진

블로그의 정보

배부른코딩로그

배부른코딩로그

활동하기