Spring + Tomcat 中配置连接池

核心提示:Tomcat5 及 Tomcat6 下CP配置。 主要是根据MLDN的一个实例进行配置的。实例中用的是Tomcat5.5,所以他的CP配置如下: 第一: 将jdbc驱动的jar包,如:MySQL、Oracle的jdbc驱动,拷贝到tomcat中lib下。 注意:必须是tomcat中lib下,如:D:\Tomcat 6.0\lib,但
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,tomcat,mysql,bean,jdbc)