Spring + Tomcat5/6 + ConnectionPool的配置

Spring + Tomcat5/6 + ConnectionPool的配置
    Tomcat5 及 Tomcat6 下CP配置。
    主要是根据MLDN的一个实例进行配置的。实例中用的是Tomcat5.5,所以他的CP配置如下:
    第一:将jdbc驱动的jar包,如:MySQL、Oracle的jdbc驱动,拷贝到tomcat中lib下。
    注意:必须是tomcat中lib下,如:D:\Tomcat 6.0\lib,但不能是项目中的WEB-INF/lib下,因为这时tomcat解析不到此类目录。
    第二:在Tomcat的安装目录下conf下找到server.xml,在<host></host>之间加上如下代码:
 1 < Context  path ="/zhinangtuan"  docBase ="F:\Eclipse\MyZNTProject\MyZhiNangTuanDemo\WebRoot"
 2         debug ="5"  reloadable ="true"  crossContext ="true" >
 3  
 4       < Logger  className ="org.apache.catalina.logger.FileLogger"
 5                  prefix ="localhost_MysqlTest_log."  suffix =".txt"
 6                  timestamp ="true" />
 7                  
 8      < Resource  name ="jdbc/mldn"   auth ="Container"  type ="javax.sql.DataSource" />
 9     
10      < ResourceParams  name ="jdbc/mldn" >
11          < parameter >
12              < name > factory </ name >
13              < value > org.apache.commons.dbcp.BasicDataSourceFactory </ value >
14          </ parameter >
15          < parameter >
16              < name > maxActive </ name >
17              < value > 100 </ value >
18          </ parameter >
19          < parameter >
20              < name > maxIdle </ name >
21              < value > 30 </ value >
22          </ parameter >
23          < parameter >
24              < name > maxWait </ name >
25              < value > 5000 </ value >
26          </ parameter >
27          < parameter >
28              < name > username </ name >
29              < value > root </ value >
30          </ parameter >
31          < parameter >
32              < name > password </ name >
33              < value > mysqladmin </ value >
34          </ parameter >
35          < parameter >
36              < name > driverClassName </ name >
37              < value > org.gjt.mm.mysql.Driver </ value >
38          </ parameter >
39          < parameter >
40              < name > url </ name >
41              < value > jdbc:mysql://localhost:3306/mldn </ value >
42          </ parameter >
43        </ ResourceParams >
44      </ Context >
    第一部分为项目的发布路径。其他的就是数据库的配置了。
    第三:在Spring的配置文件applicationContext.xml中加上如下代码:
1 < bean  id ="dataSource"
2         class ="org.springframework.jndi.JndiObjectFactoryBean"
3         destroy-method ="close" >
4          < property  name ="jndiName" >
5              < value > java:comp/env/jdbc/mldn </ value >
6          </ property >
7      </ bean >

    而我用的Tomcat是6.0.18,在根据这个配置后就会出现javax.naming.NameNotFoundException: Name jdbc is not bound in this Context的错误。原因是,Tomcat5和Tomcat6的配置有所区别:
    第一:将jdbc驱动的jar包,拷贝到Tomcat的lib下
    第二:在tomcat中conf下的context.xml文件中<context>与</context>之间加入以下部分:
 1 < Resource  name ="jdbc/mldn"    
 2         auth ="Container"        
 3          type ="javax.sql.DataSource"
 4          factory ="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
 5          driverClassName ="com.mysql.jdbc.Driver"        
 6          url ="jdbc:mysql://localhost:3306/mldn?useUnicode=true&amp;characterEncoding=utf-8"        
 7          username ="root"        
 8          password ="123"        
 9          maxActive ="100"        
10          maxIdle ="30"        
11         maxWait ="10000"   />
    同时在项目的web.xml中加入如下代码(网上说可以加也可以不加)
1 < resource-ref >        
2       < description > DB Connection </ description >        
3       < res-ref-name > jdbc/mldn </ res-ref-name >        
4        < res-type > javax.sql.DataSource </ res-type >        
5        < res-auth > Container </ res-auth >        
6      </ resource-ref >

    第三:在Spring的配置文件applicationContext.xml中加上如下代码:
1 < bean  id ="dataSource"
2         class ="org.springframework.jndi.JndiObjectFactoryBean"
3         destroy-method ="close" >
4          < property  name ="jndiName" >
5              < value > java:comp/env/jdbc/mldn </ value >
6          </ property >
7      </ bean >

    这样,Tomcat6下的CP才能正常的运行起来。

你可能感兴趣的:(Spring + Tomcat5/6 + ConnectionPool的配置)