我最近升级了一个使用JAVA 7和JBoss 7.1.1运行的应用程序。该应用程序最初是在JAVA 5和Jboss 4.2.2上开发的。此应用程序使用hibernate 3进行持久化。
在新平台上,当尝试插入具有上述错误的CLOB字段的表时,应用程序失败。我使用的是ojdbc14.jar(后端数据库Oracle 10.2.0.3)
这些是我在jboss 7.1.1配置中验证的内容:
任何见解都会有所帮助。我拉着头发试图解决这个问题差不多一个星期了。
非常感谢
答案 0 :(得分:7)
我解决了这个问题。发表这个答案,希望它可能对某人有用。
当我检查查询检索到的CLOB的实例类型时,它出现为oracle.sql.CLOB。所以我认为它必定是ojdbc.jar的版本不匹配。我为ojdb.jar的多个副本检查了我的项目数十亿次。没有。
最后,结果证明是hibernate和ojdbc之间的冲突。我更改了对java.sql.Clob的引用。 Hibernate使用java.sql.Clob。这解决了这个问题。
答案 1 :(得分:0)
在我的情况下,我没有使用Hibernate但我使用Jboss就像容器一样 我不得不从jboss-deployment-structure.xml中删除oracle模块 所以我不能再使用oracle.sql.CLOB了,我有同样的问题
java.lang.ClassCastException: oracle.sql.CLOB cannot be cast to oracle.sql.CLOB
最后我用了
java.sql.Clob clobValue = (java.sql.Clob)result.getClob("EMIRFILE");
并且正常工作。 我希望这有助于某人。