我最近升级了一个应用程序以使用 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 配置中验证过的:
- 为 Oracle 创建正确的模块。确保 ojdbc14.jar 存在于正确的模块目录中
- 确保在 jboss 目录的其他地方不存在其他冲突的 ojdbc.jar
- 确保应用程序没有引用不同的 ojdbc.jar。
任何见解都会有所帮助。近一个星期以来,我一直在努力解决这个问题。
非常感谢
最佳答案
我解决了这个问题。发布此答案,希望对某人有用。
当我检查查询检索到的 CLOB 的实例类型时,发现它是 oracle.sql.CLOB。所以我假设它一定是 ojdbc.jar 的版本不匹配。我为 ojdb.jar 的多个副本检查了无数次我的项目。没有。
最后证明是hibernate和ojdbc的冲突。我更改了对 java.sql.Clob 的引用。 Hibernate 使用 java.sql.Clob。这解决了问题。
关于java.lang.ClassCastException : oracle. sql.CLOB 无法转换为 oracle.sql.CLOB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17200815/