(转)关于 Cannot create JDBC driver of class...

4 篇文章 0 订阅
2 篇文章 0 订阅

转自:http://blog.hi.mop.com/GetEntry.do?id=3583661&owner=27441288

 

1、Cannot create JDBC driver of class '' for connect URL ''

 

 

 

问题:找不到jdbc驱动,但是提示信息里的class值为null,所以,可以断定Tomcat没有找到Server.xml里的Resource配置信息。可能的原因包括:

 

(1)没有配置Resource;

 

(2)Resource配置信息放置的位置错误。

 

(3)一个不容易发现的错误,driverClassName和url拼写错误。

 

解决办法:确认Resource配置正确,并且必须放在DefaultContext或者Context配置节内。

 

 

 

2、Cannot create JDBC driver of class 'xxx' for connect URL ''

 

 

 

解决办法:配置的数据库驱动类名xxx是错误的,检查并修改即可;如果确认正确,那就是找不到驱动库,拷贝一个jar到Tomcat/common/lib中即可。

 

 

 

3、Cannot create JDBC driver of class '' for connect URL 'xxx'

 

 

 

解决办法:配置的url字符串语法是错误的,检查后修改即可。

 

 

 

4、Cannot create PoolableConnectionFactory, cause: Io 异常: Connection refused

 

 

 

问题:无法创建连接池工厂对象,原因是连接被拒绝。

 

解决办法:检查url字符串,可能服务器地址、端口、数据库名或者数据库实例名等信息错误。修改。

 

 

 

5No suitable driver 没有匹配的驱动

 

 

 

分析:驱动程序配置错误,请确认Tomcat的common/lib子目录中是否有数据库驱动jar。

 

 

 

6、Cannot create resource instance无法创建数据源实例

 

 

 

问题:找不到commons-dbcp-1.1.jar(版本可能不同)

 

解决办法:复制commons-dbcp-1.1.jar库文件到Tomcat/Common/lib子目录中。

 

 

 

7、root cause

 

 

 

java.lang.NoClassDefFoundError: org/apache/commons/collections/CursorableLinkedList

 

问题:找不到commons-collections.jar。

 

解决办法:复制commons-collections.jar库文件到Tomcat/Common/lib子目录中。

 

 

 

8、root cause

 

 

 

 java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool

 

问题:找不到commons-pool-1.1.jar(版本可能不同)。

 

解决办法:复制commons-pool-1.1.jar库文件到Tomcat/Common/lib子目录中。

 

 


关于 Cannot create JDBC driver of class... 的异常


      在使用MyEclipse开发基于Struts的Web系统时,遇到了这样一个问题。

 

      在struts-config.xml文件中配置DataSource后,启动Tomcat服务总是抛出这样的异常,Cannot create JDBC driver of class,使用的环境如下:

      Eclipse 3.1.2 GA

      MyEclipse 4.1.1 GA

      Tomcat 5.0.28

      MySQL 4.1

      JDK 1.4.2

      Struts 1.2

      WindowsXP SP2

 

      弄了好久都没有搞定,而且找不到原因,到网上Google了一下,才恍然大悟。网上的牛人是这样解释的。





      直接在struts-config.xml中右键data-sources然后New,默认的type是:org.apache.struts.util.GenericDataSource,struts自带的一个数据库连接池。然后正确输入各种property的value。
      测试,好用。


      如果将type选择为:org.apache.commons.dbcp.BasicDataSource,这个DBCP的数据库连接池,然后键入正确的value。
      测试,提示各种异常&找不到Driver。


      查看DBCP的文档,发现MYECLIPSE生成的配置XML元素有问题。


      DBCP需要的是driverClassName和username这两个propertys。而Myeclipse自动生成的是driverClass和user这两个propertys。改过来之后发现DBCP的数据库连接池也好用了:)

 

      这应该算是MYECLIPSE开发struts的一个BUG吧,数据库连接池的配置是按照struts默认的GenericDataSource来的。如果能动态的在选择数据库连接池的时候,找寻set()/get()方法来生成属性的名字应该更好。同时,也看出来不同的数据库连接池在命名规则方面存在的一些差异。 

 

      其实很简单的东西,我却花费了半天的时间,原因是我太相信工具了,以为生成的东西一定是正确的,所以一直在想是不是别的方面出错了。得到这次教训之后,要更加清晰的对工具持怀疑态度了。不能太过相信和依靠,还是自己对这些技术的了解最重要。 

      总之,认真+心细,才能更好的解决问题。

 

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值