개발자의 길

[tomcat] jndi 설정 본문

9. TOMCAT

[tomcat] jndi 설정

자르르 2015. 6. 17. 10:15


jndi 는 was에 설정 하는 것이다.

 

기타 여러 was가 있지만, 무료로 가장 흔하게 접할수 있는 톰캣에 적용하는 방법을 기술 하겠다.

 

우선

1. tomcat설치폴더/conf/server.xml

<GlobalNamingResources> 노드 자식으로

 

-mysql 셋팅

 

<GlobalNamingResources>

 

<Resource name="jdbc/EgovData"

auth="Container"

type="javax.sql.DataSource"

maxActive="100" maxIdle="30"

maxWait="10000"
validationQuery="SELECT 1"

validationInterval="30000"
username="root"

password="passwd"

driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/myDB?useUnicode=true&amp;characterEncoding=utf8&amp;autoReconnect=true" />

 

</GlobalNamingResources>

 

--oracle 셋팅

 

<GlobalNamingResources>

 

<Resource name="jdbc/EgovDataOracle"

auth="Container"

type="javax.sql.DataSource"

maxActive="100"

maxIdle="30"

maxWait="10000"
validationQuery="SELECT 1 FROM DUAL"

validationInterval="30000"
username="scott"

password="tiger"

driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:ORA11"/>

 

</GlobalNamingResources>

2. TOMCAT 설치폴더/conf/context.xml(Catalina 폴더 안에쪽에 context를 빼놓았을 경우 그쪽 파일에 수정)

<Context> 밑으로 ResourceLink를 추가 한다. 이때 name과 global을 맞춰준다.

<Context>

  <ResourceLink name="jdbc/MySQLDS" global="jdbc/MySQLDS" 

                   type="javax.sql.DataSource" />

</Context>

 

3. 사용하려는 프로젝트의 WEB-INF 밑에 web.xml에 아래와 같이 추가한다. res-ref-name의 이름을 맞춰준다.


<resource-ref>

<description></description>

<res-ref-name>jdbc/MySQLDS</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

 

4. 스프링을 사용하는 경우, datasource를 만들때 다음과 같이 만든다. (MySQL 기준)


  - xml

<util:properties id="properties" location="classpath:application.properties" />

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

<property name="jndiName" value="#{properties['jndi.name']}" />

</bean>

    

  - properties

jndi.name=java:/comp/env/jdbc/MySQLDS

 

5. 일반 java/jsp 코딩에 사용할 경우

 

DataSource _pool;

public void jspInit() {

try {
   Context env = (Context) new InitialContext().lookup("java:comp/env");

 

   _pool = (DataSource) env.lookup("jdbc/MySQLDS");


  } catch(Exception e) {
   System.out.println ("DB POOL Initializing Exception : "+e);
  }

}

 

 

 

 



이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공유하기 링크
Comments