当前页面: 开发资料首页 → J2EE 专题 → 使用连接池的时候发生错误~~~
使用连接池的时候发生错误~~~
摘要: 使用连接池的时候发生错误~~~
测试程序:
<%@page import="javax.sql.DataSource" %>
<%@page import="javax.naming.InitialContext" %>
<%@page import="java.sql.*" %>
<%
DataSource ds=null;
Connection conn=null;
try{
Context initCtx=new InitialContext();
Context envCtx=(Context)initCtx.lookup("java:comp/env");
ds=(DataSource)envCtx.lookup("jdbc/shop");
if(ds!=null)
{
out.println("已经获得数据源!");
out.println("
");
try{
conn=ds.getConnection();
out.println("连接数据库成功");
}catch(Exception e){out.println("连接失败~"+e);}
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from userInfo");
while(rs.next())
{
out.println("用户名:"+rs.getString(1));
}
}
else
out.println("连接失败!");
}catch(Exception e){out.println(e);}
%>
--------获取数据源是成功的...
server.xml中我是添加了这样的描述:
factory
org.apache.commons.dbcp.BasicDataSourceFactory
driverClassName
com.microsoft.jdbc.sqlserver.SQLServerDriver
url
jdbc:microsoft.sqlserver://127.0.0.1:1433;DatabaseName=shop
username
root
password
password
maxActive
20
maxIdle
10
maxWait
-1
运行时发生下面的错误:
已经获得数据源!
连接失败~org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' java.lang.NullPointerException
你的数据库驱动的jar包,放在lib下面了么?
我用的tomcat是5.1.16,我的配置如下:
1、tomcat的conf目录下的sever.xml文件
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
debug="5" reloadable="true" crossContext="true">
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="myuser" password="password"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=PIM"/>
2、web项目的web.xml文件
MS SQL Server DataSource
jdbc/mssql
javax.sql.DataSource
Container
你的java code里面好象没有用driver manager设置URL哦,所以有异常说Cannot create JDBC driver of class '' for connect URL 'null'.
数据库驱动包也放到了正确的位置...
所以获取数据源是成功的~~~
等待...
要将驱动包一并放在%TOMCAT_HOME%/common/lib下面才成
已放在下面了...就是不行...