jboss eap 6.4 oracle.sql.ARRAY无法强制转换为oracle.sql.ARRAY

时间:2017-06-22 05:59:31

标签: jboss classcastexception

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)将jboss-deployment-structure.xml添加到web-inf /.

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

不行,战争也不写日志。

1 个答案:

答案 0 :(得分:0)

如果您打包了两个类的副本,则会发生此错误。

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

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