Springboot + JPA(Hibernate)+ Oracle AbstractMethodError未定义或继承isValid(int)的实现

问题描述 投票:0回答:1
  • JavaJDK 1.13
  • Springboot 2.2.6
  • Spring Data JPA
  • Oracle 10g

我是使用Spring Boot的初学者,当我尝试运行演示程序时,它报告了如下异常:Caused by: java.lang.AbstractMethodError: Receiver class oracle.jdbc.driver.T4CConnection does not define or inherit an implementation of the resolved method 'abstract boolean isValid(int)' of interface java.sql.Connection.

我在网上尝试了许多解决方案(例如,将驱动程序升级到ojdbc7或更高版本,从一开始就使用ojdbc8,甚至尝试过从Oracle 19c网站下载ojdbc8和ojdbc10,但没有人进行。)

根据@JensSchauder的建议,我偷看了oracle.jdbc.driver.T4CConnection类,发现确实没有这样的方法boolean isValid(int)而是boolean isValidLight(int)

以下是屏幕截图:ScreenShoot Here, boolean isValidLight(int var1)

这里列出了我尝试过的ojdbcs:

  • ojdbc8:12.2.0.1
  • ojdbc7:12.1.0.2
  • ojdbc8:19.3.0.0(正在使用)
  • ojdbc10:19.3.0.0

我应该如何解决这个问题?也许放弃甲骨文?

感谢您的所有提示。

java spring oracle spring-boot jdbc
1个回答
0
投票

这里真的很腥。 Hikari寻找的方法是Java 1.6中引入的,因此肯定应该在ojdbc8中存在。

我会尝试以下内容,以更好地了解发生了什么。

  1. 检查依赖项是否已正确下载。
  2. 在IDE中找到Connection类,并检查它是否具有isValid方法。我强烈怀疑它有。
  3. 在Hikari引发异常的行中添加一个断点,并检查其正在检查的对象类型。

这可能已经提供了足够的提示来调试它,如果没有,请使用找到的信息来更新您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.