Cannot create JDBC driver of class '' for connect URL 'null'

来源:http://geeklondon.com/blog/comments/tipnulljdbc#comments

遇到此问题说明你使用的是Tomcat,并且你没有正确设置JNDI。

所以当你试图得到DataSource时,你得到了这样的错误提示:Cannot create JDBC driver of class '' for connect URL 'null'

Driver problems

首先你看下是否有别的错误信息。例如,如果你看到如下信息:

org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null', cause: java.sql.SQLException: No suitable driver

这时你看到的是一个简单的classpath问题,把驱动jar包放入Tomcat lib目录下。同时也要确定你正确调用了Class.forName()方法

另外要确定你的connection URL正确,驱动的加载依赖它,所以如果URL错一个字母,那么驱动就加载不了,即使MySql driver都放到了正确位置。

JNDI problems

如果不是上面的问题,那么解决有个简单的方法解决这个问题。你可能使用的是Tomcat5.5或Tomcat6.0,并且你使用了Tomcat5.0或4.x的方法配置了数据源。

你的配置方式可能像下面这样:

   1:  <Resource name="jdbc/MYDS" auth="Container" type="javax.sql.DataSource"/>  
   2:     <ResourceParams name="jdbc/HCD">  
   3:        <parameter>  
   4:           <name>username</name>  
   5:           <value>myuser</value>  
   6:        </parameter>  
   7:        <parameter>  
   8:           <name>password</name>  
   9:           <value>mypass</value>  
  10:        </parameter>  
  11:        <parameter>  
  12:           <name>driverClassName</name>  
  13:           <value>com.mysql.jdbc.Driver</value>  
  14:        </parameter>  
  15:        <parameter>  
  16:           <name>url</name>  
  17:           <value>jdbc:mysql://localhost/MYDB</value>  
  18:        </parameter>  
  19:     </ResourceParams>  
  20:  </Context> 

 

实际上它应该像这样:

   1:  <Resource  
   2:     name="jdbc/MYDS"  
   3:     auth="Container"  
   4:     type="javax.sql.DataSource"  
   5:     username="myuser"  
   6:     password="mypass"  
   7:     driverClassName="com.mysql.jdbc.Driver"  
   8:     url="jdbc:mysql://localhost/MYDB"  
   9:  /> 

 

不否认这样更容易阅读,还使解析更加容易。可惜这样使许多人在此遇到问题。因为连接数据源时必须根据JNDI才行,这使许多初学者在这里遇到困难。

实际上官网有说明的:Please note that JNDI resource configuration has changed somewhat between Tomcat 5.0.x and Tomcat 5.5.x,但是没有在

文档中说明,许多人在使用5.5或6.0时以为仍可以使用5.0的配置方法。

 ps:09年的 从csdn移过来

Technorati Tags: tomcat,datasource,jdbc
posted @ 2011-12-22 13:32  zh.ethan  阅读(4042)  评论(0编辑  收藏  举报