论坛首页 Java企业应用论坛

Tomcat5连接池的配置

浏览 11491 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-02-14  
最近做个项目,需要在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文件配置如下:
java 代码
  1.    
  2.               type='javax.sql.DataSource' driverClassName='com.mysql.jdbc.Driver'    
  3.               url='jdbc:mysql://127.0.0.1:3306/addressbooksample'    
  4.               username='root' password='' maxActive='20' maxIdle='10'    
  5.               maxWait='-1'/>    
  6.   
  7.   <resourcelink span=""></resourcelink>
  8.     global="UserDatabase"  
  9.     name="users"  
  10. type="org.apache.catalina.UserDatabase"/>   
 
这里就和以前的tomcat4版本不一样了,以前要在server.xml配置.而tomcat5版本直接在这里配置就可以了.
第三步:在你项目的web.xml配置如下:
xml 代码
  1. <resource-ref>  
  2.    <description>mysql  for 192.1.1.156 description>  
  3.    <res-ref-name> jdbc/mysql res-ref-name>  
  4.    <res-type>javax.sql.DataSourceres-type>  
  5.    <res-auth>Containerres-auth>  
  6.  resource-ref>  

注意:这里的res-ref-name名字必须和testTomcat.xml文件中的一样.其实这一步省去也是可以的.但还是建议配置一下

第四步:建一个JSP页面来感受一下成功的喜悦吧.页面代码如下
java 代码
  1. Context initCtx = new InitialContext();   
  2.           Context ctx = (Context) initCtx.lookup("java:comp/env");   
  3.          ds   =(javax.sql.DataSource) ctx.lookup("jdbc/mysql");   
  4.          System.out.println("Init datasource OK @!");   
注意:别忘了引入相关的包哦.还要注意的是这里不能用主函数来测试.因为你主函是得到tomcat的上下文的.
在项目中应用如下:
java 代码
  1. public class TomcatJDNI {   
  2.   
  3.     public static String   
  4.     DATASOURCE_CONFIG_FILE="test.db";   
  5.         public static DataSource ds;   
  6.            
  7.         static{   
  8.             try{   
  9.          ResourceBundle rb = ResourceBundle.getBundle(DATASOURCE_CONFIG_FILE);   
  10.          String dsName     = rb.getString("datasource_name");   
  11.              Context initCtx = new InitialContext();   
  12.              Context ctx = (Context) initCtx.lookup("java:comp/env");   
  13.          ds   =(javax.sql.DataSource) ctx.lookup(dsName);   
  14.          System.out.println("Init datasource OK @!");   
  15.     }catch(Exception e){   
  16.         System.out.println("can’t init datasource !");   
  17.     }   
  18.     }   
  19.   
  20.     public static Connection getConnection() throws SQLException{   
  21.         return ds.getConnection();   
  22.     }   
  23. }   
  24. 这里的test.db是一个db.properties文件.文件内容如下   
  25. datasource_name= jdbc/mysql   
  26. 这样扩展性比较好.连接其它的数据库,只需要改动此文件,无需重新编译.   
  27. 就到这里吧   
  28. Good luck!   
   发表时间:2007-02-14  
怎么少了很多 <
0 请登录后投票
   发表时间:2007-02-14  
嗯,这样就可以了.比4版本的确少了很多.
0 请登录后投票
   发表时间:2007-02-14  
只要在项目的META-INF目录下建个context.xml文件,然后在java代码里jndi引用就可以了。
<?xml version="1.0" encoding="UTF-8"?>
<Context debug= "99" reloadable="true" crossContext="true" verbosity="debug">
	<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource" password="root" driverClassName="com.mysql.jdbc.Driver" maxIdle="2" maxWait="5000" username="root" url="jdbc:mysql://localhost:3306/test?autoReconnect=true" maxActive="4"/>
</Context>
0 请登录后投票
   发表时间:2007-02-15  
tomcat 也有可视化的配置,干吗这么麻烦呢。后台上只用填几个值就行了,其它的也可以,比如jndi后台也有,等等。
0 请登录后投票
   发表时间:2007-02-20  
可视化的配置,当然可以了.只不过写习惯了.也不觉得麻烦.反而我到觉的可视化配置,有好多东西有用,也有好多东西没有用.还不如自己写呢.
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics