debian 5 에 tomcat 6.0.20 을 설치하고 테스트용 JSP를 작성해보았다. 기본 설정으로는 JDBC 연결이 되지 않는다.


먼저 설치 확인하고 톰캣에 mysql jar 연결
apt-get install libmysql-java tomcat6 tomcat-common
cd /usr/share/tomcat6/lib
ln -s /usr/share/java/mysql.jar


JSP Examples
/etc/tomcat6/server.xml 수정
    <GlobalNamingResources>
      ...
    <Resource name="jdbc/mydbname" auth="Container" 
          type="javax.sql.DataSource"
          username="mysql_loginid" password="mysql_pass" 
          driverClassName="com.mysql.jdbc.Driver"
          url="jdbc:mysql://server_ip:3306/databasename" />
      ...
    </GlobalNamingResources>

(removeAbandoned 따위 인자는 안적는게 좋네요.. ㅜㅜ)



/etc/tomcat6/context.xml 파일 수정
<ResourceLink global="jdbc/mydbname" 
   name="jdbc/mydbname" type="javax.sql.DataSource" /> 
(만약... 호스트나 어플리케이션에 특화시키려면..
/etc/tomcat6/Catalina/[hostname]/[appname].xml 혹은 /etc/tomcat6/Catalina/[hostname]/ROOT.xml
에 적어야한다.)


자바 소스에서 사용할 때는
Context ctx = new InitialContext();
 DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mydbname");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rst = stmt.executeQuery("select ...");
while(rst.next()) { ... }






다 했는데.. 이런 오류가 난다면,
(Could not create connection to database server. Attempted reconnect 3 times. Giving up.)

/etc/tomcat6/policy.d/04webapps.policy 에 다음 코드를 추가한다.
 permission java.net.SocketPermission "데이터베이스서버_아이피:3306", "connect";



검색에 걸리게 하기 위해 설정을 제대로 안했을 때 나타나는 오류를 적어둔다.
* Name jdbc is not bound in this Context
* JSP ExamplesCannot create JDBC driver of class '' for connect URL 'null'
JSP Examples* Cannot load JDBC driver class 'com.mysql.jdbc.Driver'