Reputation: 1050
I recently upgraded an application to run using JAVA 7 and JBoss 7.1.1 This application was originally developed on JAVA 5 and Jboss 4.2.2. This application uses hibernate 3 for persistence.
On the new platform, the application is failing when there is an attempt to INSERT into a table with CLOB fields with the above error. I am using ojdbc14.jar (backend database Oracle 10.2.0.3)
These are things that I have verified in jboss 7.1.1 configuration:
Any insight would be helpful. I am pulling my hair trying to resolve this issue for almost a week now.
Thanks much
Upvotes: 4
Views: 25992
Reputation: 56
In my case, the error was caused by an incorrect version of the ojdbc driver. When starting the server, the version is displayed in the early lines of the log, and it showed a higher version (12.2 -> ojdbc8.jar) than what should have been used (11.2 -> ojdbc6.jar). Making the change in the Wildfly configuration was sufficient to resolve the issue.
Upvotes: 0
Reputation: 1686
In my situation i m not using Hibernate but i use Jboss like container and i had to remove the module of oracle from the jboss-deployment-structure.xml so i could not use anymore the oracle.sql.CLOB and i had the same probelm
java.lang.ClassCastException: oracle.sql.CLOB cannot be cast to oracle.sql.CLOB
in the end i used
java.sql.Clob clobValue = (java.sql.Clob)result.getClob("EMIRFILE");
and works correctly. I hope this help someone.
Upvotes: 0
Reputation: 1050
I fixed the problem. Posting this answer, hoping it might be useful to someone.
When I was checking the instance type of the CLOB retrieved by the query, it came up as oracle.sql.CLOB. So I assumed it must have been a version mismatch of ojdbc.jar. I checked my project a gazillion times for multiple copies of the ojdb.jar. There were none.
Finally it turned out to be a clash between hibernate and ojdbc. I changed the reference to java.sql.Clob. Hibernate uses java.sql.Clob. This resolved the problem.
Upvotes: 7