当前位置: 代码迷 >> Java Web开发 >> 出错,不知道如何解决(未解决)
  详细解决方案

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

热度:371   发布时间:2006-12-30 11:35:04.0
出错,不知道如何解决(未解决)
数据库连接池问题:
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'

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

搜索更多相关主题的帖子: 数据库  dbcp  tomcat  apache  

----------------解决方案--------------------------------------------------------
数据库连接问题 把代码贴出来看看 有可能是连接字符串出错
----------------解决方案--------------------------------------------------------
上面的英文好像不难看懂吧

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


你的地址是null?


----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------

/////////////////////////////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编辑过]


----------------解决方案--------------------------------------------------------
不太了解
不好意思

看你的配置应该没有问题的,没有用过TOMCAT的数据源
----------------解决方案--------------------------------------------------------
还在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>

不知道我说这些你都做了么?
----------------解决方案--------------------------------------------------------
楼上的设置了,现在就出现下面一个了,太麻烦了
javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSourceFactory]
----------------解决方案--------------------------------------------------------
以下是引用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配置了么?
名称得一致


----------------解决方案--------------------------------------------------------

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编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案