java.lang.ClassCastException: oracle.sql.CLOB cannot be cast to oracle.sql.CLOB

泄露秘密 提交于 2020-01-13 04:10:09

问题


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:

  1. Creation of the correct module for Oracle. Ensured that ojdbc14.jar exists in the correct modules directory
  2. Ensured that there are no other conflicting ojdbc.jar existing anywhere else in the jboss directory
  3. Ensured that the application is not referring to a different ojdbc.jar.

Any insight would be helpful. I am pulling my hair trying to resolve this issue for almost a week now.

Thanks much


回答1:


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.




回答2:


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.



来源:https://stackoverflow.com/questions/17200815/java-lang-classcastexception-oracle-sql-clob-cannot-be-cast-to-oracle-sql-clob

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!