【问题标题】:jboss eap 6.4 oracle.sql.ARRAY cannot be cast to oracle.sql.ARRAYjboss eap 6.4 oracle.sql.ARRAY 不能强制转换为 oracle.sql.ARRAY
【发布时间】:2017-06-22 05:59:31
【问题描述】:

JBoss EAP 6.4 独立服务器

部署为 war 文件的应用程序引发运行时异常

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

一行

ARRAY a = (ARRAY) cs.getArray(1);

包含的 JDBC 库是 ojdbc14.jar (WEB_INF/lib)。所有库都包含在 war 文件中,并且服务器上没有设置“全局”库。我已验证应用程序的任何位置均未包含其他 jdbc 库。

为了创建 JDBC 数据源,我为 ojdbc14.jar 创建了部署。这是我能想到的唯一可能的冲突来源。当我从 war 文件中删除 ojdbc14.jar 时,我得到一个 ClassNotFound 异常来代替 ClassCastException。

应用程序的所有其他部分都可以正常工作,除了这一行。我该如何进一步调试?

我尝试了一些东西,但没有用:

(1)在 web-inf/ 中添加一个 jboss-deployment-structure.xml。

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-deployment-structure> 
<deployment> 
<dependencies> 
<module name="com.oracle" slot="main"/> 
</dependencies> 
</deployment> 
</jboss-deployment-structure>

不工作,战争也不写日志。

【问题讨论】:

    标签: jboss classcastexception


    【解决方案1】:

    当您打包了两个类的副本时会发生此错误。

    根据您的描述,Oracle 驱动程序的部署中有一份副本。第二个副本在应用程序中。

    从应用程序中删除它,而不是在部署目录中部署 oracle jar,而是创建它的 module

    【讨论】:

    • 谢谢你的帮助。但是当我从我的应用程序中删除 jar 时,我得到一个 ClassNotFound 异常来代替 ClassCastException。我已经创建了它的模块来创建一个 JDBC 数据源。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 2016-09-10
    相关资源
    最近更新 更多