【发布时间】:2018-09-04 07:44:49
【问题描述】:
为什么几秒钟后连接不工作?应用程序挂起且未按预期运行并返回以下错误。
java.lang.ClassCastException: org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper 无法转换为 org.apache.tomcat.dbcp.dbcp2.DelegatingConnection
以下是用于获取连接的代码:
OracleConnection oracleConnection = (OracleConnection)
((DelegatingConnection)connection).getInnermostDelegate();
使用库:commons-pool1.6.jar 用于加密,tomcat-dbcp.jar 用于数据库。
在 Tomcat context.xml 中使用加密的用户名和密码。
另外,在 context.xml 文件中使用 accessToUnderlyingConnectionAllowed=true。
问题在于 JAVA8 和 Tomcat8。能够使用普通凭据正常工作,唯一的问题是加密凭据。
【问题讨论】:
-
您是否应该使用
connection.unwrap(OracleConnection.class);而不是您现在拥有的?您使用的是 Tomcat8,我假设您使用的是提供 JDBC 4 的最新 Java 版本。 -
感谢您的建议。也试过这个解包,但没有用。我们使用的是 JAVA1.8、Tomcat 8.5.28 和 ojdbc7.jar。
-
@MaheshReddy 你找到解决方案了吗?我面临同样的问题。在 n 号之后无法建立连接。点击次数。