我面对着tomcat数据源和OracleConnection
的怪异行为
情况1:
我已经在tomcat 8中为oracle12c配置了数据源,并将ojdbc8.jar放在tomcat_home/lib
文件夹中。
之后,我执行下面的代码,它正在工作
try
{
if (connection.isWrapperFor(OracleConnection.class))
{
oracleConnection = connection.unwrap(OracleConnection.class); //working fine
}
}
catch (SQLException ex)
{
}
情况2:
再次配置数据源,并将ojdbc8.jar放置在
tomcat_home/lib
文件夹以及动态Web项目的WEB-INF/lib
中。在那之后,我执行了上面相同的代码,它没有解开连接,并且我在
oracleConnection
中为空。为什么会这样呢?
最佳答案
由于您的tomcat目录已经具有依赖项,因此我们需要知道您的maven(等级?)依赖项是什么样。该依赖项必须设置为作用域:否则,您将有重复的ojdbc驱动程序。
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ojdbc[number_here]</artifactId>
<version>[version_here]</version>
<scope>provided</scope>
</dependency>
Instrumentation: Casting org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper to oracle.jdbc.OracleConnection的可能重复项