Java Exception java.lang.AbstractMethodError

svdrlsy4  于 2023-11-15  发布在  Java
关注(0)|答案(4)|浏览(135)

如何解决这个异常:

  1. Exception in thread "main" java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z
  2. at org.apache.commons.dbcp2.DelegatingConnection.isValid(DelegatingConnection.java:914)
  3. ...

字符串
我读到这个错误是关于libraries/ jdk的,但我找不到一个好的方法来解决它。我需要你的帮助。谢谢!

gkn4icbw

gkn4icbw1#

这意味着您的mysqljdbc驱动程序没有实现jre 6中添加的jdbc方法,比如isValid。

vnzz0bqm

vnzz0bqm2#

如果您提供验证查询,则可以避免升级驱动程序。

vsaztqbk

vsaztqbk3#

我将JDBC驱动程序jar文件升级到mysql-connector-java-6.0.2并解决了这个问题。

cuxqih21

cuxqih214#

结合多个答案并扩展信息,以便所有信息都在一个地方。
正如@BrettOkken提到的,JDK 1.6在Connection上添加了isValid方法,所以你最好的办法是找到一个更新版本的驱动程序。
为了扩展@mhvelplund的答案...
如果您说服Tomcat的dbcp 2不调用isValid方法,则可以避免升级JDBC驱动程序。您可以通过在context.xml文件(放入Tomcat的/conf/Catalina/localhost/{myappname}.xml中)的Resource定义中指定validationQuery(可能还有validationQueryTimeoutmaxConnLifetimeMillis)来实现这一点。

  1. <Resource name="jdbc/ajx"
  2. auth="Container" type="javax.sql.DataSource"
  3. maxTotal="25" maxIdle="30" maxWaitMillis="10000"
  4. maxConnLifetimeMillis="300000"
  5. validationQuery="SELECT CURRENT_TIME()"
  6. validationQueryTimeout="1"
  7. driverClassName="{...}"
  8. url="jdbc:{...}"/>

字符串

相关问题