Maven compilation and run time error java.lang.AbstractMethodError: oracle.jdbc.driver.T4CConnection.isValid(I)Z on Tomcat 8 Server

Maven compilation and run time error java.lang.AbstractMethodError: oracle.jdbc.driver.T4CConnection.isValid(I)Z on Tomcat 8 Server

我一直在将大型 Java Web 应用程序转换为 Maven 项目,但我 运行 在少数 classes 中出现错误,这些错误源自 tomcat-dbcp 罐子。我从任何需要使用 BasicDataSource 对象的 class 收到以下错误消息:

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>

但我仍然看到此错误。我该怎么做才能消除这个错误?

这个错误确实消失了,但我不知道为什么。 pom 条目仍然相同,仍然是 运行 Tomcat 8。我们确实找到了一个 hacky 临时修复:

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc7</artifactId>
    <version>12.1.0.1</version>
    <scope>system</scope>
    <systemPath>${basedir}/lib/ojdbc7-12.1.0.1.jar</systemPath>
</dependency>

但我们在某个时候恢复了原样,并且工作正常。