TOMCAT 5.5에서의 context 및 jndi 설정
기존 4버젼 까지는 conf/server.xml에 <host></host> 안에 context와 resource 설정을 해주었지만
tomcat 5.5에서는 server.xml에 context를 추가하는 것을 권장하지않고 있다.
5.5에서는
%CATALINA_HOME%/conf/[servicename]/[hostname]/
에 [applicationname].xml 을 만들어서 관리하도록 권장하고 있다.
실제로 5.5 설치 후 위 디렉토리에 가보면 디폴트 application 위치 (%CATALINA_HOME%/WEB-INF/webapps/[applicationname]) 가 아닌 다른 곳에 위치하고 있는 애플리케이션들의 xml 설정 파일들이 존재하고 있다.
admin.xml manager.xml 등
이번 Spring 의 예를 보면
책은 4.X의 톰캣 버젼이었던거 같고
일단 server.xml에 context를 추가하는 것이 아니고 위 위치에다가 chapter1.xml 을
만들어서
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="chapter1"
privileged="true" antiResourceLocking="false" antiJARLocking="false">
<Resource name="jdbc/SpringDS"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
url="url"
username="name"
password="pass"
maxActive="20"
maxIdle="10"
maxWait="-1"
removeAbandoned="true"/>
</Context>
를 추가해주면된다.
path 엘리먼트가 없는 이유는 아마 xml의 파일이름이 path의 이름을 가지고 있기 때문이지 않을까 싶다.
web.xml은 해당 애플리케이션이 따로 가지고 있기 때문에 conf/web.xml 과 conf/server.xml은 결국
만지지 않아도 된다는 뜻.
저렇게 설정을 해주고 chapter1의 WEB-INF/web.xml에서
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/SpringDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
이렇게 jdbc/SpringDS를 바라보도록 해주면
OK
context를 설정하는 또 다른 방법은 해당 애플리케이션 밑에 즉
/[applicationname]/META-INF 라는 폴더 아래
context.xml이라는 파일을 만들어서 넣어주면 되기도 한다.