配置tomcat安装目录下conf/server.xml配置如下
<?xml version='1.0' encoding='utf-8'?>
<Server>
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<GlobalNamingResources>
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
<Context path="/DBTest" docBase="DBTest"
debug="5" reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_DBTest_log." suffix=".txt"
timestamp="true"/>
<!-
数据源名称
à
<Resource name="jdbc/TestDB"
auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/TestDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!-- MySQL dB username and password for dB connections -->
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value>root</value>
</parameter>
<!-- Class name for the official MySQL Connector/J driver -->
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/test1?autoReconnect=true</value>
</parameter>
</ResourceParams>
</Context>
<Service name="Catalina">
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8000" redirectPort="8443" maxSpareThreads="75" maxThreads="150" minSpareThreads="25">
</Connector>
<Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443">
</Connector>
<Engine defaultHost="localhost" name="Catalina">
<Host appBase="webapps" name="localhost">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
</Host>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
</Engine>
</Service>
</Server>
黑体部分为需要我们配置的部分。
C:/ProgramFiles/ApacheSoftwareFoundation/Tomcat5.0/conf/Catalina/localhost/pooltest.xml设置
我的项目名称为pooltest
在部署项目pootltst后产生了该文件具体如下
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="C:/Program Files/Apache Software Foundation/Tomcat 5.0/webapps/pooltest" path="/pooltest" workDir="work/Catalina/localhost/pooltest">
<Resource name="jdbc/TestDB" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/TestDB">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>password</name>
<value>root</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/test1</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>username</name>
<value>root</value>
</parameter>
</ResourceParams>
</Context>
开始的时候Resource name为Test 结果报错,org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '
' for connect URL 'null', cause: No suitable driver。修改后使其与server.xml
中的Resource nam一致,之后成功。
测试页面
<%@
page
contentType
=
"text/html; charset=GBK"
%>
<%@
page
import
=
"java.sql.*,javax.sql.DataSource,javax.naming.*"
%>
<
html
>
<
head
>
<
title
>
test.jsp
</
title
>
</
head
>
<
body
bgcolor
=
"#ffffff"
>
<
h1
>
test Tomcat
</
h1
>
<%
try
{
Context initCtx =
new
InitialContext();
DataSource ds = (DataSource) initCtx
.lookup(
"java:comp/env/jdbc/TestDB"
);
Connection conn = ds.getConnection();
out.println(
"data from database:<br>"
);
Statement stmt = conn.createStatement();
ResultSet rs = stmt
.executeQuery(
"select * from user"
);
while
(rs.next()) {
out.println(rs.getInt(
"id"
));
out.println(rs.getString(
"username"
));
out.println(rs.getString(
"password"
));
}
rs.close();
stmt.close();
}
catch
(Exception e) {
e.printStackTrace();
}
%>
</
body
>
</
html
>
数据库Mysql
create database test1;
use test1;
create table user(
id int(3) not null primary key,
username varchar(20) ,
password varchar(20)
);
insert into user(id,username,password) values(1,'admin','admin');
select * from user;
web..xml的配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
本文详细介绍了如何在Tomcat服务器中配置MySQL数据库连接,包括server.xml文件中的资源定义及项目级别的pooltest.xml配置,展示了如何解决数据库连接问题并提供了一个简单的测试页面示例。
1135

被折叠的 条评论
为什么被折叠?



