【方法一】 在Tomcat4中,配置连接池,常见的就是在server.xml和web.xml中作相应配置。在针对单个项目文件情况下,Tomcat5中我们可以不在server.xml中配置Context(实际上,我们在server.xml中默认情况下没有看见Context标记),可以在\jakarta-tomcat-5.0.27\conf\Catalina\localhost下针对具体的文件夹名.xml(如:我的是blog.xml)中配置Context,这样也就免去了在web.xml中还要配置。
1<context displayname="Cactus Blog Web Application 1.0" docbase="F:\jakarta-tomcat-5.0.27\webapps\blog" path="/blog" workdir="work\Catalina\localhost\blog">
2<resource auth="Container" description="Oracle DataBase" name="jdbc/blog" type="javax.sql.DataSource"></resource>
3<resourceparams name="jdbc/blog">
4<parameter>
5<name>factory</name>
6<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
7</parameter>
8<parameter>
9<name>maxWait</name>
10<value>-1</value>
11</parameter>
12<parameter>
13<name>maxActive</name>
14<value>10</value>
15</parameter>
16<parameter>
17<name>password</name>
18<value>。。</value>
19</parameter>
20<parameter>
21<name>url</name>
22<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=blog</value>
23</parameter>
24<parameter>
25<name>driverClassName</name>
26<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
27</parameter>
28<!--对应oracle参数
29
30<parameter>
31<name>url</name>
32<value>jdbc:oracle:thin:@localhost:1521:mydata</value>
33</parameter>
34<parameter>
35<name>driverClassName</name>
36<value>oracle.jdbc.driver.OracleDriver</value>
37</parameter>
38
39\-->
40<parameter>
41<name>maxIdle</name>
42<value>10</value>
43</parameter>
44<parameter>
45<name>username</name>
46<value>sa</value>
47</parameter>
48</resourceparams>
49</context>
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
总结:Tomcat5中,可以不在server.xml和web.xml中配置就能实现连接池配置;这应该是Tomcat5的功能相对Tomcat4的提高,有些朋友在Tomcat5中(使用在Tomcat4中配置方法)来配置连接池不能正常使用,可以采用这个方法,更快捷!!
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
【方法二】 看到关注这方面内容人比较多,考虑到各人理解层度不一样,现把 **_ 常见配置方式 _ ** 具体步骤也增加上来(tomcat-5.0.27),对tomcat5都适用。
第一步:在tomcat的管理员界面中设置Data Source(common\lib下增加oracle驱动:classes12.jar.classes12-for oracle8.jar)
JNDI Name: jdbc/mydata
Data Source URL: jdbc:oracle:thin:@localhost:1521:mydata
JDBC Driver Class: oracle.jdbc.driver.OracleDriver
User Name: 。。。 //如system
Password: 。。。//如manager
Max. Active Connections: 4
Max. Idle Connections:2
Max. Wait for Connection: 5000
Validation Query:
第二步:在\jakarta-tomcat-5.0.27\webapps\DeoWeb\WEB-INF的web.xml配置
1<web-app>
2<display-name>My Web Application</display-name>
3<description>
4MY homesite.
5</description>
6<resource-ref>
7<description>
8oracle DataSource
9</description>
10<res-ref-name>
11jdbc/mydata
12</res-ref-name>
13<res-type>
14javax.sql.DataSource
15</res-type>
16<res-auth>
17Container
18</res-auth>
19</resource-ref>
20</web-app>
第三步:启动tomcat后conf\confserver.xml自动变成了这个样子(自动发布为全局连接池):
1<server>
2<listener classname="org.apache.catalina.mbeans.ServerLifecycleListener"></listener>
3<listener classname="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"></listener>
4<globalnamingresources>
5<environment name="simpleValue" type="java.lang.Integer" value="30"></environment>
6<resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"></resource>
7<resource name="jdbc/mydata" type="javax.sql.DataSource"></resource>
8<resourceparams name="UserDatabase">
9<parameter>
10<name>factory</name>
11<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
12</parameter>
13<parameter>
14<name>pathname</name>
15<value>conf/tomcat-users.xml</value>
16</parameter>
17</resourceparams>
18<resourceparams name="jdbc/mydata">
19<parameter>
20<name>maxWait</name>
21<value>5000</value>
22</parameter>
23<parameter>
24<name>maxActive</name>
25<value>4</value>
26</parameter>
27<parameter>
28<name>password</name>
29<value>manager</value>
30</parameter>
31<parameter>
32<name>url</name>
33<value>jdbc:oracle:thin:@localhost:1521:mydata</value>
34</parameter>
35<parameter>
36<name>driverClassName</name>
37<value>oracle.jdbc.driver.OracleDriver</value>
38</parameter>
39<parameter>
40<name>maxIdle</name>
41<value>2</value>
42</parameter>
43<parameter>
44<name>username</name>
45<value>system</value>
46</parameter>
47</resourceparams>
48</globalnamingresources>
49<service name="Catalina">
50<connector acceptcount="100" connectiontimeout="20000" disableuploadtimeout="true" maxsparethreads="75" maxthreads="150" minsparethreads="25" port="8080" redirectport="8443">
51</connector>
52<connector port="8009" protocol="AJP/1.3" protocolhandlerclassname="org.apache.jk.server.JkCoyoteHandler" redirectport="8443">
53</connector>
54<engine defaulthost="localhost" name="Catalina">
55<host appbase="webapps" name="localhost">
56<context docbase="." path=" "></context>
57<logger classname="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"></logger>
58</host>
59<logger classname="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"></logger>
60<realm classname="org.apache.catalina.realm.UserDatabaseRealm"></realm>
61</engine>
62</service>
63</server>
第四步:写了个简单jsp测试:
1@ page contentType="text/html; charset=iso-8859-1"
1@ page import="java.sql.*"
1@ page import="javax.sql.*"
1@ page import="javax.naming.*"
1<html>
2<head>
3<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
4<title></title>
out.println("Test begin!");
try{
InitialContext ctx=new InitialContext();
out.println("First success!");
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mydata");
out.println("Second success!");
Connection conn = ds.getConnection();
out.println("Third success!");
Statement stmt = conn.createStatement();
String strSql = "select * from sys.signon";
ResultSet rs = stmt.executeQuery(strSql);
while(rs.next()){
out.print(rs.getString(1)); }
out.print("我的测试结束");
}
catch(Exception ex){
out.print("There is exception:"+ex.getMessage());
ex.printStackTrace();
}
1
2</head>
3<body>
4</body></html>