使用连接池的时候发生错误~~~
测试程序:
<%@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("<br/>");
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中我是添加了这样的描述:
<Context path="/ds" docBase="ds" debug="0" reloadable="true" crossContext="true">
<Resource name="jdbc/shop" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/shop">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft.sqlserver://127.0.0.1:1433;DatabaseName=shop</value>
</parameter>
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value>password</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
</ResourceParams>
</Context>
运行时发生下面的错误:
已经获得数据源!
连接失败~org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' java.lang.NullPointerException