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&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才能正常的運行起來。