【发布时间】:2020-04-02 13:00:30
【问题描述】:
- JavaJDK 1.13
- Springboot 2.2.6
- Spring 数据 JPA
- Oracle 10g
我是使用Spring boot的初学者,当我尝试运行demo程序时,它报告异常如下: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
我应该如何解决这个问题?也许放弃甲骨文?
感谢您的所有提示。
【问题讨论】:
-
试试
com.oracle.ojdbc ojdbc8 19.3.0.0版本> 依赖> -
@SimonMartinelli 是的,我之前尝试过从 19c(19.3.0.0) 下载的 ojdbc 驱动程序,但还是一样。我应该从 .m2 目录中删除其他 ojdbc 驱动程序吗?
-
该错误表明您的类路径中有 ojdbc14(或者如果存在,则可能是 ojdbc5)。
-
@MarkRotteveel 是的,你是对的。我在
%JavaHome%\lib下找到了它们(ojdbc14)。它们似乎来自oracle10g。我会尝试重命名它们,看看它是否会引起任何问题。非常感谢。
标签: java spring oracle spring-boot jdbc