oracle.jdbc.driver.T4CConnection无法强制转换为oracle.jdbc.OracleConnection

时间:2013-04-16 09:41:29

标签: jboss6.x jdbc-odbc

WrappedConnectionJDK6 wrapped = (WrappedConnectionJDK6) dbStrategy.getConnection();
            Connection underlyingConn = wrapped.getUnderlyingConnection();
            OracleConnection oracleConn = (OracleConnection)underlyingConn;

最后一行给出错误 -

> ERROR
> [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/web].[resteasy-servlet]]
> (http-/0.0.0.0:8080-1) Servlet.service() for servlet resteasy-servlet
> threw exception: org.jboss.resteasy.spi.UnhandledException:
> java.lang.ClassCastException: oracle.jdbc.driver.T4CConnection cannot
> be cast to oracle.jdbc.OracleConnection

1 个答案:

答案 0 :(得分:5)

AFAIK T4CConnection应该实现oracle.jdbc.OracleConnection。 恕我直言你有2个驱动程序实现,一个在app服务器上,一个在你的项目依赖项中,必须有一个类加载问题,因为检索到的驱动程序实现是由共享类加载器加载的,你试图将它转换为webApp加载的类类加载器。

您可以确保您的Web应用程序依赖项与服务器提供的实现相同,或者只是在打包时从Web应用程序中排除依赖项。

如果你正在使用maven,只需将范围设置为provided