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>
不行,战争也不写日志。
答案 0 :(得分:0)
如果您打包了两个类的副本,则会发生此错误。
根据您的描述,Oracle驱动程序的部署中有一个副本。第二个副本在应用程序中。
从应用程序中删除它,而不是在部署目录中部署oracle jar,创建它的module。