返回列表 發帖

TOMCAT 6 上設定 JNDI 連接池 使用mySQL

在tomcat 6 下設定跟以往不同
其中最重要的一個點 就是 context.xml
這個設定在以往, 它是放在 server.xml 這個檔裡的 <HOST> </HOST> 裡面
但在tomcat6, 這個設定被獨立出來, context.xml
它的內容就跟以前一樣

紅色字的部分就是設定JNDI , 如果你是使用mySQL
  1. <?xml version='1.0' encoding='utf-8'?>  
  2. <Context path="" reloadable="true" docBase="D:\Tomcat\webapps\myWeb" workDir="D:\Tomcat\webapps\myWeb\WEB-INF\work >  
  3.   
  4.   
  5.      <WatchedResource>WEB-INF/web.xml</WatchedResource>  
  6.       
  7.      <Resource name="jdbc/db" auth="Container" type="javax.sql.DataSource"  
  8.                maxActive="5" maxIdle="1" maxWait="10000"  
  9.                username="帳號" password="密碼" driverClassName="com.mysql.jdbc.Driver"  
  10.                url="jdbc:mysql://localhost:3306/db?autoReconnect=true" />  
  11.       
  12. </Context>  
接下來,設定web.xml
你可以直接去設定在Tomcat\conf\web.xml
  1. <web-app>  
  2.     ...........  
  3.   
  4.   <resource-ref>  
  5.     <description>JNDI JDBC DataSource of DBWatch</description>  
  6.     <res-ref-name>jdbc/db</res-ref-name>  
  7.     <res-type>javax.sql.DataSource</res-type>  
  8.     <res-auth>Container</res-auth>  
  9.   </resource-ref>   
  10. ...........  
  11.   
  12. </web-app>  
如此,JNDI就設定完成了.

接下來就測試看看~寫一隻jsp
  1. <%@ page import="java.sql.*" %>  
  2. <%@ page import="javax.sql.*" %>  
  3. <%@ page import="javax.naming.*" %>  
  4. <%@ page language="java" contentType="text/html;charset=Big5" %>  
  5. <%  
  6. Connection con=null;  
  7. try  
  8.     {       
  9.         Context initContext = new InitialContext();  
  10.         Context envContext  = (Context)initContext.lookup("java:/comp/env");  
  11.         DataSource ds = (DataSource)envContext.lookup("jdbc/db");  
  12.         con = ds.getConnection();  
  13.           
  14.       
  15.         if(!con.isClosed()){  
  16.             out.println("與db有連線!!\n");  
  17.         }  
  18.           
  19.       
  20.     }    
  21.     catch(SQLException sqle)  
  22.     {  
  23.         out.println("sqle="+sqle);    
  24.     }  
  25.     finally  
  26.     {  
  27.         con.close();  
  28.         con=null;  
  29.     }  
  30. %>  

返回列表 回復 發帖