JSP连接数据源报这种错原因出在哪儿呀,急在线等!
%TOMCAT_HOME%/conf/server.xml中Context元素如下:
<Context path="/ch13_jdbc" docBase="D:/MyPrj/ch13_jdbc/ch13_jdbc" debug="0" reloadable="true" crossContext="true">
<Resource name="jdbc/bn" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/bn">
<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=jspdev</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>sa</value>
</parameter>
</ResourceParams>
</Context>
连接此数据源的JSP代码如下:
<%@page contentType="text/html; charset=gb2312"%>
<%@page import="javax.naming.Context,javax.sql.DataSource,java.sql.*,javax.naming.InitialContext"%>
<%
DataSource ds=null;
try{
Context initCtx=new InitialContext();
Context envCtx=(Context)initCtx.lookup("java:comp/env");
//从Context中loolup数据源
ds=(DataSource)envCtx.lookup("jdbc/bn");
if(ds!=null){
out.println("已经获得数据源:"+ds.toString()+"<p>");
Connection con=ds.getConnection();
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from book");
out.println("以下是从数据库中读取出来的数据:<br>");
while(rs.next()){
out.println("bookName:"+rs.getString("bookName")+"<br>");
}
}
else{
out.println("连接数据源失败!");
}
}
catch(Exception e){
out.println(e);
e.printStackTrace();
}
%>
%TOMCAT_HOME%/commons/lib下的jar包也没有问题
运行结果在页面上显示:
已经获得数据源:org.apache.tomcat.dbcp.dbcp.BasicDataSource@cafb56
1-->org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
请问高手们问题出在哪儿呀?