前几天试了好几次都没有成功,后来在本地虽然测试成功了,但是移到服务器上又有问题了:
希望高手解决我在服务器上配置的问题,
现在我将我在本地配置的步骤写出来和大家分享:
配置连接池的步骤:
1. tomcat中server.xml的配置(这个文件的所在的目录是:tomcat的安装目录/ /conf/server.xml)
在<GlobalNamingResources>和<GlobalNamingResources>之间添加
<Resource name="jdbc//TomcatModule" //这里是配置是"jdbc//您Module名称,我这里的名称是:TomcatModule
type="javax.sql.DataSource"//这里是配置您的连接的类型
password =""//这里是您连接数据库的密码
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"//驱动类的名称
maxIdle="2" //最大的停顿时间
maxWait="5000"//连接的最大等待时间
username="sa"//连接数据库的帐户名
url="jdbc:microsoft:sqlserver://localhost;DatabaseName=pubs"//指定连接数据库的名称
maxActive="4"/>//最长的连接时间
2. 在tomcat的安装目录/conf/Catalina/localhost下新建一个与你web文件夹同名的xml文件(我的是TomcatModule .xml)
这一步非常重要,如果没有这步就会出错,会出现org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'的错误。
没有关系,只要创建好这个xml文件之后就以记事本的方式打开,将第一步的内容复制到这个文件中,内容如下:
<Resource name="jdbc//TomcatModule" //这里是配置是"jdbc//您Module名称,我这里的名称是:TomcatModule
type="javax.sql.DataSource"//这里是配置您的连接的类型
password =""//这里是您连接数据库的密码
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"//驱动类的名称
maxIdle="2"//最大的停顿时间
maxWait="5000"//连接的最大等待时间
username="sa"//连接数据库的帐户名
url="jdbc:microsoft:sqlserver://localhost;DatabaseName=pubs"//指定连接数据库的名称,我这里用了数据库自带的pubs数据库
maxActive="4"/>//最长的连接时间
注意:这里的内容配置一定要和上面的文件配置一致,否则一样也不会连接成功,错误还是:org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'的错误。
3. 现在可以测试一个程序,我的测试程序是(这里我只在Jbulider2006中写了一个测试的页面,当然在实际项目中):
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="java.sql.*" %>
<html>
<head>
<title>JDBC Test</title>
</head>
<body>
<%
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
ResultSetMetaData md=null;
try
{
Context initCtx=new InitialContext();
DataSource ds=(DataSource)initCtx.lookup("java:comp/env/jdbc/TomcatModule");
if (ds!=null)
{
out.println("已经获得DataSource<br>"+ds.toString()+"<br>");
conn=ds.getConnection();
stmt=conn.createStatement();
out.println("<br>");
rs=stmt.executeQuery("select * from jobs");
md=rs.getMetaData();
out.println("<table border=1>");
out.println("<tr>");
for(int i=0;i<md.getColumnCount();i++)
{
out.println("<td>"+md.getColumnName(i+1)+"</td>");
}
while(rs.next())
{
out.println("<tr>");
out.println("<td>"+rs.getString(1)+"</td>");
out.println("<td>"+rs.getString(2)+"</td>");
out.println("<td>"+rs.getString(3)+"</td>");
out.println("<td>"+rs.getString(4)+"</td>");
out.println("</tr>");
}
out.println("</table>");
conn.close();
}
}
catch(Exception e)
{
out.println(e.toString());
System.out.println(e.toString());
}%>
</body>
</html>
4. 现在我们可以将我们的程序部署到TOMCAT服务器上去了。
部署之前先编译一次,让我们的MODULE生成.war文件(不生成也可以的)。
然后在您的工程下找到MODULE文件夹或者生成的.war文件,将您的MODULE文件夹或者.war文件复制到: TOMCAT的安装目录/webapps下即可,如果是复制了.war文件的话,那么我们要先启动TOMCAT——在TOMCAT中找到.war的文件名称,对.war文件进行编译,如果是MODULE文件夹就可以省下这一步。
5. 现在我们要将已经准备好的SQL SERVER2000驱动包分别复制到:TOM CAT的安装目录/common/lib和TOM CAT的安装目录/webapps/ TomcatModule /WEB-INF/lib下;
这样就可以运行程序了!