AbstractMethodError: com.ibm.db2.jcc.c.b.isValid(I)Z解決辦法
阿新 • • 發佈:2018-12-11
在獲取資料庫連線過程中發生了這個問題 環境: tomcat8.5.16 java8 資料庫驅動db2jcc10.1.jar 沒有配置連線池 根據錯誤提示,這個資料庫驅動jar包中沒有isValid方法,去找了找還真沒有這個方法 找了下原因,因為在tomcat8.5.16中,預設使用的dbcp2的連線池,這也是tomcat自帶的 在dbcp中org.apache.commons.dbcp2.DelegatingConnection有如下程式碼:
try { return _conn.isValid(timeout); } catch(SQLException e) { handleException(e); return false; }
然後該資料庫驅動jar包裡沒有這個方法,所以會出錯 對應的,如果是其他資料庫報了這個錯也是類似的道理,就是版本不相容。
知道原因後解決方案有多種,升級驅動jar包、手工配置連線池 這裡我直接把tomcat8換成了tomcat7,降級後就可以了。
對於db2的jar包還有個坑 注意需要給tomcat配置上這個 不然會報錯
Unable to process Jar entry [COM/ibm/db2os390/sqlj/custom/DB2SQLJCustomizer.class]