1. 程式人生 > >AbstractMethodError: com.ibm.db2.jcc.c.b.isValid(I)Z解決辦法

AbstractMethodError: com.ibm.db2.jcc.c.b.isValid(I)Z解決辦法

在獲取資料庫連線過程中發生了這個問題 環境: 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]