반응형

eclipse TOMCAT JNDI 설정 방법


이전글에서 스프링에서 JNDI를 설정 하는 방법을 보았습니다. 

이번에는 TOMCAT 에서 JNDI를 설정하는 방법입니다. 


톰켓(TOMCAT) 홈 디렉토리에 있는 설정 파일을 찾아 봅니다. 

TOMCAT_HOME : 톰캣이 있는 폴더 (디렉토리)를 말합니다. 

그럼 다음으로 이동을 해봅니다. 


TOMCAT_HOME/conf/server.xml 파일을 찾아 수정 작업을 합니다. 


<GlobalNamingResources> 

....[주석]

....[기존설정내용]

.....

</GlobalNamingResources> 

해당 구문을 찾습니다. 


이 구문 사이에 접근DB 정보를 입력합니다 

입력 방법은 다음과 같습니다. 


<GlobalNamingResources> 

....[주석]

....[기존설정내용]

....[추가 DB 접근 내용1]

....[추가 DB 접근 내용2]

....[추가 DB 접근 내용3]

</GlobalNamingResources> 

 

간단히 표시를 했지만 실제 구문은 다음과 같습니다. 

위 예시는 여러 DB를 사용 했을 때이고 아래 구문은 1개만 추가해 보겠습니다.


[server.xml]

<GlobalNamingResources> 

<!-- Editable user database that can also be used by

         UserDatabaseRealm to authenticate users

    -->

    <Resource name="UserDatabase" auth="Container"

              type="org.apache.catalina.UserDatabase"

              description="User database that can be updated and saved"

              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"

              pathname="conf/tomcat-users.xml" />


    <!-- 추가 DB 접근내용1 -->

    <Resource name="JDNI이름" auth="Container"

              driverClassName="oracle.jdbc.driver.OracleDriver"

              factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"

              type="javax.sql.DataSource"

              url="jdbc:oracle:thin:@서버아이피:포트:SID이름"

              username="사용자아이디"

              password="패스워드" />


</GlobalNamingResources>


위와 같이 수정을 하였다면 다음으로 context.xml 파일을 수정 합니다.

추가된 JDNI 이름을 사용 할수 있도록 링크작업을 한다고 생각 하면 됩니다. 


[context.xml]

<context>

.. 

<ResourceLink global="JNDI이름" name="JNDI이름" type="javax.sql.DataSource"/>

..

</context>


위와 같이 <context> </context> 구문사이에 <ResourceLink> 내용을 추가 하면 됩니다. 

이와 같이 설저을 해두면 추가 프로젝트 작업을 진행할때 DB 접근 정보를 몰라도

JNDI이름만 호출해서 바로 DB 접근이 가능합니다. 


간단히 JDNI TOMCAT 설정 방법을 정리 봤습니다. 



반응형
반응형

이클립스 스프링 JNDI 설정 방법


프로젝트를 스프링으로 구성 했을때 JNDI로 DB를 접근해야 하는 경우가 있습니다. 

보통 구축이나 운영 프로젝트를 진행 할때 많이들 사용하게 됩니다.

여러 프로젝트에서 하나의 datasource를 공유해서 사용할때 이용됩니다.

마지막으로 load balancing 이 좋다고 하는게 사용자는 체감을 할수는 없을거라 생각 됩니다.


우선 JNDI 설정은 application(웹사이트) 내에 DB 정보를 설정 하여 접근 하는 방식이 아니고 

WAS(톰캣,제우스,웹로직 등)에서 미리 설정 된 [연결정보name]을 호출 하여 접근 하는 방식입니다.


우선 스프링 구성에서 application-config.xml 파일을 열어 봅니다. 

또는 context-datasource.xml 등의 파일 안에 설정이 있습니다.


가장 간단히 찾아 볼수 있는 방법으로는 프로젝트에서 datasource와 jndi로 검색을 해보면 xml 파일에서 설정되어 있는 부분을 찾을 수 있습니다.


일반적으로 다음과 같이 선언 되어 있습니다.

오라클 DB 기준입니다.  


[jdbc 방식]

<bean id="datasource" class="org.apche.commons.dbcp.BasicDataSource">

  <property name="driverClassName" value="oracle.jdbc.OrcleDriver" />

  <property name="url" value="jdbc:oracle:thin:@아이피:포트:SID" />

  <property name="username" value="접속아이디" />

  <property name="password" value="패스워드" />

</bean>


이것을 JNDI로 변경하면 아주 간단하게 바뀝니다. 


[JNDI 방식]

<bean id="datasource" class="org.springframework.jndi.JndiObjectFactoryBean">

  <property name="jndiName" value="JDNI선언이름" />

  <property name="resourceRef" value="true" />

</bean>


연결 정보가 미리 WAS 서버에서 선어 되어 있기 때문에 이름만 호출 해서 사용을 하면 됩니다. 


TOMCAT에서 JDNI로 DB 연결 정보를 설정 하는 방법 다음글로 올리겠습니다. 

 

반응형

+ Recent posts