java.lang.ClassCastException : oracle. sql.CLOB 无法转换为 oracle.sql.CLOB

标签 java hibernate jboss clob

我最近升级了一个应用程序以使用 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 配置中验证过的:

  1. 为 Oracle 创建正确的模块。确保 ojdbc14.jar 存在于正确的模块目录中
  2. 确保在 jboss 目录的其他地方不存在其他冲突的 ojdbc.jar
  3. 确保应用程序没有引用不同的 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/

相关文章:

java - 结合 boolean 值和 if

java - 我们可以动态创建 testng.xml 文件吗?

java - 在 Mac 上设置 JAVA_HOME

java - Maven 阴影插件 ClassNotFoundException

java - hibernate 无PK

java - Java .properties 文件中的日语文本

hibernate - Micronaut 数据 - 没有 [org.hibernate.SessionFactory] ​​类型的 bean

java - 服务器启动时的调用方法

jakarta-ee - 我可以把我的 jar 放在哪里?耳朵与 Jboss 5.1

java - 无法在 Jboss-eap-6.4 中部署 Springboot 应用程序