Application Version: JBoss 7.0.0, Oracle 11g (ojdbc6.jar) and JDK 6 version
I have a problem when I am trying to insert the value for CLOB Data type using CLOB.createTemporary
function, getting the below exception.
java.lang.ClassCastException: org.jboss.jca.adapters.jdbc.jdk6.WrappedConnectionJDK6 cannot be cast to oracle.jdbc.OracleConnection
After searching in multiple forums, did not find any solution. https://forums.oracle.com/forums/thread.jspa?threadID=279238
Basic steps required to deploy a WAR file and configuring the JBoss oracle driver pool configuration is done. But, still not able to get through this issue.
Please provide solution to fix this problem.
What's happening here is that JBoss wraps the oracle connection (oracle.jdbc.OracleConnection) with it's own one (org.jboss.jca.adapters.jdbc.jdk6.WrappedConnectionJDK6). You have to call #getUnderlyingConnection() to get the underlying connection.
However I ask myself whether the following wouldn't work as well in your case.
I have solved my problem with the below approach.
Summary: Class loader should not load the Oracle driver from server lib/modules and in web archive (WAR file). Keep the oracle driver only in server lib (JBoss 7 ver).
JBoss 7:
Created a new JBoss deployment descriptor file(jboss-deployment-structure.xml)
Example:
Web module: - Removed the ojdbc6.jar file from the web archive(WAR file)
If you find any issue in solving, please let me know.
Got a similar problem in a Rails App with Jruby 1.7.2, JBoss 7.1 and Oracle (oracle_enhanced adapter)
This solution worked for me.
I put the jboss-deployment-structure.xml in the config/ directory of the rails app and updated the warbler config to include the file in the war file:
After deploy all worked fine ... Thx a lot.