【发布时间】:2015-12-08 14:52:34
【问题描述】:
我一直在将一个大型 Java Web 应用程序转换为一个 maven 项目,但是我在一些源自 tomcat-dbcp jar 的类中遇到了错误。我从需要使用 BasicDataSource 对象的任何类中收到以下错误消息:
javax.servlet.ServletException: java.lang.AbstractMethodError: oracle.jdbc.driver.T4CConnection.isValid(I)Z
java.lang.AbstractMethodError: oracle.jdbc.driver.T4CConnection.isValid(I)Z
现在我知道这个 jar 存在于服务器上(因为它在我们的 Tomcat8 安装中是默认的)。所以在 Maven 中我声明了这个依赖:
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-dbcp</artifactId>
<version>8.0.26</version>
<scope>provided</scope>
</dependency>
但我仍然看到此错误。我可以做些什么来消除这个错误?
【问题讨论】:
-
您使用的是哪个版本的 Oracle 驱动程序?您可能想尝试升级到较新的版本。
-
与我的 Tomcat8 安装中的标准相同。据我所知,这是驱动程序冲突。但是,如果我不将驱动程序包含在我的战争中,它会说它找不到类。
-
这并没有真正缩小范围。
isValid(int)方法是在 JDBC 4 (Java 6) 中添加的,从外观上看,您只是在使用旧 Java 版本(ojdbc5、ojdbc14 等)的驱动程序;或未完全实现 JDBC 4 的旧版本。 -
我正在使用 ojdbc7,抱歉,与有问题的 jar 混淆了。我在想tomcat-dbcp。
标签: java maven tomcat jdbc tomcat8