이노무 Tomcat 은 JNDI 등록때문에 받는 스트레스가 심하다. 버전에 따라 JNDI 등록하는 방법이 다르기 때문인데
이번에는 Tomcat 5.5 를 기준으로 한다.

인터넷 검색 해보면 각양 각색으로 설명이 틀린데, 뭐 META-INF 에 context.xml 을 작성해라, server.xml 만 작성하면 된다는 등등.. 그런데 왜 난 잘 안되는걸까..

결론부터 말하자면, Tomcat 5.5 에선, server.xmlweb.xml 에 모두 설정을 해줘야 한다.

server.xml 설정

<GlobalNamingResources> ... </GlobalNamingResources> 내 이건, <Host> 내의 <Context>... </Context> 이건 관계 없이 아래와 같이 설정한다

[Derby]

<Resource description="Test database connection" name="jdbc/testDs"
 auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30"
 maxWait="10000" username="userid" password="password" driverClassName="org.apache.derby.jdbc.ClientDriver"
 url="jdbc:derby://localhost:1527/C:/MyDevTool/bin/db-derby-10.4.2.0/officedb" />

[MySQL]
<Resource description="Test database connection" name="testDs2"
 auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30"
 maxWait="10000" username="userid" password="password" driverClassName="com.mysql.jdbc.Driver"
 url="jdbc:mysql://localhost:3306/my_db?autoReconnect=true" />

web.xml 설정

server.xml 만 설정해서 되는건 아니고, web.xml 도 설정 해줘야 하는데, 이놈때문에 좀 해멨다.
web.xml 의 가장 마지막 정도에 아래와 같이 정의해줘야 한다.

[Derby]

 <resource-ref>
        <description>DB Connection</description>
        <res-ref-name>jdbc/testDs</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>

[MySQL]
 <resource-ref>
        <description>DB Connection</description>
        <res-ref-name>jdbc/testDs</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>

이렇게 server.xml / web.xml 두가지를 해줘야 정상 작동 한다.

그리고, Tomcat 에서도, name 을, jdbc/testDs 로 하지 않고
testDs 로만 설정 해줘도 잘 동작 한다.


반응형
블로그 이미지

Good Joon

IT Professionalist Since 1999

,