使用DBCP时发生AbstractMethodError异常
使用DBCP时发生AbstractMethodError异常
使用DBCP时发生AbstractMethodError异常,,错误描述:
Exception in thread "main" java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z
at org.apache.commons.dbcp2.DelegatingConnection.isValid(DelegatingConnection.java:914)
at org.apache.commons.dbcp2.PoolableConnection.validate(PoolableConnection.java:283)
at org.apache.commons.dbcp2.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:357)
at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2304)
at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2287)
at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2038)
at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1533)
at DBCP.main(DBCP.java:23)
解决方案:
mysql-connector 版本为 5.0.4 ,那么对应的 dbcp 和 pool 版本应该为 1.4 和 1.6 。
5.0.4 不应该使用 2.0 及以上版本的 dbcp 和 pool。因为 在 dbcp 中 org.apache.commons.dbcp2.DelegatingConnection 有如下代码:
try {
return _conn.isValid(timeout);
}
catch (SQLException e) {
handleException(e);
return false;
}
上述代码中 isVaild 在 com.mysql.jdbc.Connection (5.0.4 ) 中并未实现上述方法,因此将会抛出抽象方法错误。
如果需要使用 dbcp 2.0 ,那么 mysql-connector 必须使用 5.1.3 版本。
本文永久更新链接地址:
上一篇: php数组过滤问题
推荐阅读
-
使用DBCP时发生AbstractMethodError异常
-
phpMyAdmin“无法在发生异常时创建会话”
-
~图片下传时发生的异常
-
关于使用file读入整个文件时出现的异常断行错误转载 我没试过,不过在读文件的时候最好还是...
-
MySQL之—使用c3p0与DBCP连接池,造成的MySql 8小时问题的详细代码解决方案
-
无法在发生异常时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装
-
phpStudey2010中进入phpMyAdmin出现"无法在发生异常时创建会话,请检查PHP"的解决办法
-
lucene 写入索引时发生Lock obtain timed out异常 luceneCC++C#
-
lucene 写入索引时发生Lock obtain timed out异常 luceneCC++C#
-
网站使用qq第三方登录时,自动检测登录正常,手工输入密码再登录,就报 100010 的异常