java.lang.ClassCastException:org.jboss.jca.adapters.jdbc.jdk6.WrappedConnectionJDK6无法强制转换


问题内容

应用程序版本: JBoss 7.0.0,Oracle 11g(ojdbc6.jar)和JDK 6版本

当我尝试使用CLOB.createTemporary函数插入CLOB数据类型的值时遇到问题,出现以下异常。

java.lang.ClassCastException: org.jboss.jca.adapters.jdbc.jdk6.WrappedConnectionJDK6 cannot be cast to oracle.jdbc.OracleConnection

在多个论坛中搜索后,未找到任何解决方案。
https://forums.oracle.com/forums/thread.jspa?threadID=279238

完成了部署WAR文件和配置JBoss oracle驱动程序池配置所需的基本步骤。但是,仍然无法解决这个问题。

请提供解决此问题的解决方案。


问题答案:

我已经通过以下方法解决了我的问题。

简介: 类装入器不应从服务器库/模块和Web归档文件(WAR文件)中装入Oracle驱动程序。仅将oracle驱动程序保留在服务器库(JBoss 7
ver)中。

JBoss 7:

  • 创建了一个新的JBoss部署描述符文件(jboss-deployment-structure.xml)

    1. 更新了jboss部署结构文件中的(ironjacamar-jdbc-1.0.3.Final.jar)Iron模块
    2. 在JBoss 7结构中将ojdbc6.jar创建为模块。更新了jboss部署结构文件中的objbc模块。
    3. 例:
          <jboss-deployment-structure> 
      <deployment>
          <dependencies>
              <module name="org.jboss.ironjacamar.jdbcadapters" slot="main"/>
              <module name="com.oracle.ojdbc6" slot="main"/>
          </dependencies>
      </deployment>