注册 登录
编程论坛 J2EE论坛

出错,不知道如何解决(未解决)

dengyiming 发布于 2006-12-30 11:35, 1133 次点击
数据库连接池问题:
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'

[此贴子已经被作者于2006-12-30 16:45:58编辑过]

9 回复
#2
liyueyu2006-12-30 13:03
数据库连接问题 把代码贴出来看看 有可能是连接字符串出错
#3
千里冰封2006-12-30 13:04
上面的英文好像不难看懂吧

Cannot create JDBC driver of class '' for connect URL 'null'
不能为连接地址'null'创建类''的JDBC驱动


你的地址是null?

#4
dengyiming2006-12-30 14:09

搞那个TOMCAT与数据库的连接池
不用连接池的方法就可以访问数据库,用连接池方式就访问不了

#5
dengyiming2006-12-30 14:12

/////////////////////////////JSP文件//////////////////////////
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.*"%>

<%
DataSource ds = null;
try{
Connection conn = com.jspdev.util.DatabaseConn.getConnection();
if(conn!=null)
{
out.println("Connection is OK!");
out.println("<br>");
Statement stmt=conn.createStatement();
ResultSet rst=stmt.executeQuery("select * from user_info");
while(rst.next())
{
out.println(rst.getString("userId"));
out.println("<br>");

}
}
else
out.println("Fail!");
}
catch(Exception ne){ out.println(ne);}
%>

//////////////////////////////java文件//////////////////////////
import java.sql.*;
import javax.naming.*;
import javax.sql.DataSource;
public class DatabaseConn {
public static synchronized Connection getConnection() throws Exception
{
try
{

Context initCtx = new javax.naming.InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource)envCtx.lookup("jdbc/jspdev"); ;
return ds.getConnection();
}
catch(SQLException e)
{
throw e;
}
catch(NamingException e)
{
throw e;
}

}

}

/////////////////server.xml////////////////////
............
<Context path="/jspdev" docBase="jspdev" debug="0" reloadable="true"
crossContext="true">
<Resource name="jdbc/jspdev" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/jspdev">
<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://192.168.1.3:1433;DatabaseName=jspdev</value>
</parameter>

<parameter>
<name>username</name>
<value>sa</value>
</parameter>

<parameter>
<name>password</name>
<value>123</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'

[此贴子已经被作者于2006-12-30 14:14:34编辑过]

#6
千里冰封2006-12-30 14:41
不太了解
不好意思

看你的配置应该没有问题的,没有用过TOMCAT的数据源
#7
angeloc2006-12-31 10:35
还在Tomcat安装目录下/conf/Catalina/localhost文件夹中建立一个和你网站文件夹名字一样的XML文件.然后把你在server.xml你配置的内容写进去,还要在web.xml中配置数据源如下:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/jspdev</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

不知道我说这些你都做了么?
#8
dengyiming2006-12-31 16:08
楼上的设置了,现在就出现下面一个了,太麻烦了
javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSourceFactory]
#9
angeloc2006-12-31 16:30
以下是引用dengyiming在2006-12-31 16:08:21的发言:
楼上的设置了,现在就出现下面一个了,太麻烦了
javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSourceFactory]

/conf/Catalina/localhost下jspdev.xml配置了么?
名称得一致

#10
dengyiming2006-12-31 16:42

jspdev.xml没有啊,请问应该怎么配置啊??

希望能详细一点呢
要设置 conf\server.xml 这个我设置好了
conf\context.xml 这个也是
conf\web.xml 这个不知道在那里加,有的论坛说不用设置的,我加了楼上的代码还是一样的出错
conf\Catalina\localhost\jspdev.xml 不知道怎么设置啊


////////////////////////////////server.xml//////////////////////////////////
<Context path="/jspdev" docBase="jspdev" debug="0" reloadable="true"
crossContext="true">
<Resource name="jdbc/jspdev" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://192.168.1.3:1433;DatabaseName=jspdev"
username="sa"
password="123"
maxActive="20"
maxIdle="10"
maxWait="1"/>
</Context>

是不是红色那里错了??? 应该怎样改?我的版本TOMCAT5.5.20

[此贴子已经被作者于2006-12-31 17:26:33编辑过]

1