簡體   English   中英

Springboot+JPA(Hibernate)+Oracle AbstractMethodError 未定義或繼承 isValid(int) 的實現

[英]Springboot+JPA(Hibernate)+Oracle AbstractMethodError not define or inherit an implementation of isValid(int)

  • JavaJDK 1.13
  • 彈簧靴 2.2.6
  • 彈簧數據 JPA
  • 甲骨文 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

我應該如何解決這個問題? 也許放棄甲骨文?

感謝您的所有提示。

這里的東西真的很可疑。 Hikari 正在尋找的方法是在 Java 1.6 中引入的,因此它絕對應該與ojdbc8一起ojdbc8

我會嘗試以下操作以更好地了解發生了什么。

  1. 檢查依賴項實際上是否已正確下載。
  2. 在 IDE 中找到Connection類並檢查它是否具有isValid方法。 我強烈懷疑它有。
  3. 在 Hikari 拋出異常的行添加一個斷點並檢查它正在檢查的對象類型。

這可能已經為調試提供了足夠的提示,如果沒有,請使用您找到的信息更新您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM