Tomcat5.5 配置数据库连接池 - JNDI DataSource 设置攻略-V1.0
最近打算做一个网站,完全采用共享软件(Web server:tomcat5.5,DB:mysql5.0, JDK:jdk5.0,也是为了响应共享精神。为了保证网站的访问速度,考虑使用数据库连接池。研究了一番,参考综合了许多网友的信息,配制成功。现在把整个过程记录如下,仅供参考。
准备
下载所需软件:(搜索到官方网站下载)
1. jdk-1_5_0_06-windows-i586-p.exe
2. mysql-essential-5.0.18-win32.msi
(mysql-query-browser-1.1.20-win.msi,mysql-administrator-1.1.9-win.msi)mysql辅助工具.
3. mysql-administrator-1.1.9-win.msi
4. mysql-connector-java-5.0.0-beta.zip jdbc driver
5. commons-dbcp-1.2.1.zip connection pool classes
动作
1。安装 JDK,Tomcat,Mysql. 不再赘述。
2。mysql-connector-java-5.0.0-beta和commons-dbcp-1.2.1解压,
将解压后的.jar文件复制到Tomcat\common\lib下.
3. 配置D:\Tomcat 5.5\conf\server.xml在server.xml 不要使用Tomcat Admin配置。
<GlobalNamingResources>
</GlobalNamingResources>之间的最后添加:
<Resource name="mysqlDBConPool"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
password="dbpwd"
maxIdle="2"
maxWait="5000"
username="dbuser"
url="jdbc:mysql://localhost:3306/yourDBName"
maxActive="4"/>
4。配置Tomcat\webapps\yoursApp\WEB-INF\web.xml --注释:你得webapp name
<web-app></web-app>
<resource-ref>
<description>my DB Connection</description>
<res-ref-name>mysqlDBConPool</res-ref-name> -- must same as server.xml
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
5。新建\Tomcat\webapps\yoursApp\META-INF\context.xml, 如下:
<?xml version='1.0' encoding='utf-8'?>
<Context path="/yoursApp" docBase="yoursApp"
debug="5"
reloadable="true"
crossContext="true">
<ResourceLink name="mysqlDBConPool" global="mysqlDBConPool" type="javax.sql.DataSource"/>
</Context>
6。 JSP 文件测试。jsp1.jsp
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page errorPage="jsp1_error.jsp" %>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page session="false" %>
<html>
<head>
<title>
jsp1
</title>
</head>
<body bgcolor="#ffffff">
<h1>
Test Of MySQL connection pool
</h1>
<%
try
{
Context intCtx1 = new InitialContext();
Context ctx1 = (Context) intCtx1.lookup("java:comp/env");
Object obj = (Object) ctx1.lookup("mysql8341uniondb");
javax.sql.DataSource ds1 = (javax.sql.DataSource) obj;
out.println(ds1.toString()) ;
Connection conn1 = ds1.getConnection();
out.println("db1 get ds1 success!!<br>") ;
out.println("db1 mysql8341uniondb connection pool runs perfectly!");
conn1.close();
}
catch(Exception ex)
{
out.print(ex.getMessage());
ex.printStackTrace();
}
%>
<form method="post">
<br>Enter new value : <input name="sample"><br>
<br><br>
<input type="submit" name="Submit" value="Submit">
<input type="reset" value="Reset">
</form>
</body>
</html>
7。 重新启动Tomcat. 哈哈。连接成功了。那么下一步就是数据库变成的了。
8。Cannot create JDBC driver of class for connect URL null
如果有这个错。Copy \Tomcat\webapps\yoursApp\META-INF\context.xml
到 Tomcat\conf\Catalina\localhost 下。重新命名为 yoursApp.xml
重新启动Tomcat. 哈哈。连接成功了
9。 不知道为什么Tomcat 不能自动加载context.xml 为Tomcat\conf\Catalina\localhost yoursApp.xml
10。大功告成。
希望与各位共同进步。
08-04
08-04
08-04