Oracle11g 为什么C3p0';s ComboPooledDataSource成功连接到数据库,但其克隆未';T

Oracle11g 为什么C3p0';s ComboPooledDataSource成功连接到数据库,但其克隆未';T,oracle11g,c3p0,Oracle11g,C3p0,在使用Oracle 11数据库的Tomcat 8.5.15环境中,我想实现一个数据源,该数据源在context.xml中处理加密的密码。我在这方面遇到了麻烦,如本文所述 为了确定潜在的问题,我简化了场景。首先,我验证了C3p0资源规范工作正常 <Resource auth="Container" description="MyDataSource" driverClass="oracle.jdbc.

在使用Oracle 11数据库的Tomcat 8.5.15环境中,我想实现一个数据源,该数据源在context.xml中处理加密的密码。我在这方面遇到了麻烦,如本文所述

为了确定潜在的问题,我简化了场景。首先,我验证了C3p0资源规范工作正常

   <Resource 
              auth="Container"
              description="MyDataSource"
              driverClass="oracle.jdbc.OracleDriver" 
              maxPoolSize="100"  
              minPoolSize="10"   
              acquireIncrement="1"  
              name="jdbc/MyDataSource"
              user="me"  
              password="mypassword"
              factory="org.apache.naming.factory.BeanFactory"
              type="com.mchange.v2.c3p0.ComboPooledDataSource"
              jdbcUrl="jdbc:oracle:thin:@mydb:1521:dev12c"
              />
我使用克隆的类创建了修订的资源规范:

   <Resource 
              auth="Container"
              description="MyDataSource"
              driverClass="oracle.jdbc.OracleDriver" 
              maxPoolSize="100"  
              minPoolSize="10"   
              acquireIncrement="1"  
              name="jdbc/MyDataSource"
              user="me"  
              password="mypassword"
              factory="org.apache.naming.factory.BeanFactory"
              type=type="com.mycompany.ComboPooledDataSourceCopy"
              jdbcUrl="jdbc:oracle:thin:@mydb:1521:dev12c"
              />
为什么克隆尝试连接失败

更新:


在本地DBA的帮助下,我们能够审核我的连接尝试。看来我们正在成功连接到数据库并登录。基于此,听起来问题可能在于代码如何处理数据库的响应,而不是在我们的请求生成中。

错误是由于类加载问题造成的,Oracle类是从多个JAR加载的(
%CATALINA\u HOME%\lib\ojdbc7-12.1.0.2.0.jar
%CATALINA\u HOME%\webapps\my-webapps-1.0.0\WEB-INF\lib\ojdbc7-12.1.0.2.0.jar
)被不同的类加载器删除。当我删除
%CATALINA\u HOME%\webapps\my-webapps-1.0.0\WEB-INF\lib\ojdbc7-12.1.0.2.0.0.0.jar
时,我的问题就消失了

这些来源(,)更详细地讨论了这一点

   <Resource 
              auth="Container"
              description="MyDataSource"
              driverClass="oracle.jdbc.OracleDriver" 
              maxPoolSize="100"  
              minPoolSize="10"   
              acquireIncrement="1"  
              name="jdbc/MyDataSource"
              user="me"  
              password="mypassword"
              factory="org.apache.naming.factory.BeanFactory"
              type=type="com.mycompany.ComboPooledDataSourceCopy"
              jdbcUrl="jdbc:oracle:thin:@mydb:1521:dev12c"
              />
...
Caused by: java.sql.SQLException: com.mchange.v2.c3p0.impl.NewProxyConnection@6950dfda
[wrapping: oracle.jdbc.driver.T4CConnection@765426dd]
is not a wrapper for or implementation of oracle.jdbc.OracleConnection
    at com.mchange.v2.c3p0.impl.NewProxyConnection.unwrap(NewProxyConnection.java:1744)
    at org.jaffa.security.JDBCSecurityPlugin.executeStoredProcedure(JDBCSecurityPlugin.java:117)
    ... 67 more