tomcat5.5.9連接池的配置(轉)
最近做個項目,需要在tomcat,weblogic中寫連接池.weblogic還是老樣子,照著圖形界面配置就可以了.Tomcat我用的是5.5.9.雖說以前用tomcat4版本寫過,可早就聽說,5版本和4版本的差距很大.所以就提前做好了心里準備,先看了一個幫助文檔,花了進一個小時的時間搞定,現在整理出來與大家分享.
其實Tomcat5要比tomcat4簡單多了,如果還是按tomcat4的套路來,呵呵,那恐怕那走很多彎路了.
第一步:在tomcat5→common→lib下加入你所連接數據庫的驅動包.這里我用的mysql數據庫.
第二步:在tomcat5→conf→Catalina→localhost配置一個xml文件.這里一定要注意,必須和你的項目名稱是一模一樣的.我用的項目名為testTomcat.testTomcat.xml文件配置如下:
??? <Resource name='jdbc/mysql' auth='Container'
????????????? type='javax.sql.DataSource' driverClassName='com.mysql.jdbc.Driver'
?????????????url='jdbc:mysql://127.0.0.1:3306/addressbooksample'
????????????? username='root' password='' maxActive='20' maxIdle='10'
????????????? maxWait='-1'/>
?
?<ResourceLink
??? global="UserDatabase"
??? name="users"
type="org.apache.catalina.UserDatabase"/>
這里就和以前的tomcat4版本不一樣了,以前要在server.xml配置.而tomcat5版本直接在這里配置就可以了.
第三步:在你項目的web.xml配置如下:
?<resource-ref>
??? <description>mysql ?for 192.1.1.156 </description>
??? <res-ref-name> jdbc/mysql </res-ref-name>
??? <res-type>javax.sql.DataSource</res-type>
??? <res-auth>Container</res-auth>
?</resource-ref>
注意:這里的res-ref-name名字必須和testTomcat.xml文件中的一樣.其實這一步省去也是可以的.但還是建議配置一下.
第四步:建一個JSP頁面來感受一下成功的喜悅吧.頁面代碼如下
Context initCtx = new InitialContext();
???? ???? ?Context ctx = (Context) initCtx.lookup("java:comp/env");
???? ???? ds ??=(javax.sql.DataSource) ctx.lookup(
"jdbc/mysql");
???????? ?System.out.println("Init datasource OK @!");
注意:別忘了引入相關的包哦.還要注意的是這里不能用主函數來測試.因為你主函是得到tomcat的上下文的.
在項目中應用如下:
public class TomcatJDNI {
?
???? public static String
???? DATASOURCE_CONFIG_FILE="test.db";
???????? public static DataSource ds;
????????
???????? static{
????????????? try{
???????? ?ResourceBundle rb = ResourceBundle.getBundle(DATASOURCE_CONFIG_FILE);
???????? ?String dsName???? = rb.getString("datasource_name");
????????????? ?Context initCtx = new InitialContext();
???? ???????? Context ctx = (Context) initCtx.lookup("java:comp/env");
???? ???? ds?? =(javax.sql.DataSource) ctx.lookup(dsName);
???????? ?System.out.println("Init datasource OK @!");
???? }catch(Exception e){
???????? System.out.println("can’t init datasource !");
???? }
???? }
?
???? public static Connection getConnection() throws SQLException{
???????? return ds.getConnection();
???? }
}
這里的test.db是一個db.properties文件.文件內容如下
datasource_name= jdbc/mysql
這樣擴展性比較好.連接其它的數據庫,只需要改動此文件,無需重新編譯.
就到這里吧
Good luck!
posted on 2007-03-30 09:29 liaojiyong 閱讀(329) 評論(0) 編輯 收藏 所屬分類: AppServer