2017-06-22 1 views
1

JBoss EAP 6.4 serveur autonomepae jboss 6.4 oracle.sql.ARRAY ne peut pas être jeté à oracle.sql.ARRAY

application déployée en tant que fichier de guerre jette une exception d'exécution

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

à la ligne

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

La bibliothèque JDBC incluse est ojdbc14.jar (WEB_INF/lib). Toutes les bibliothèques sont incluses dans le fichier war et aucune librairie "globale" n'est configurée sur le serveur. J'ai vérifié qu'aucune autre bibliothèque jdbc n'est incluse dans l'application. Afin de créer une source de données JDBC, j'ai créé un déploiement pour ojdbc14.jar. C'est la seule source possible de conflit que je peux penser. Lorsque je supprime le fichier ojdbc14.jar du fichier war, j'obtiens une exception ClassNotFound à la place de ClassCastException.

Chaque autre partie de l'application fonctionne bien, sauf cette ligne. Comment est-ce que je débogue ceci plus loin?

J'ai essayer quelque chose, mais ne fonctionnera pas:

(1) ajouter un jboss-déploiement dans 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> 

ne fonctionne pas et la guerre n'écrit pas le journal aussi.

Répondre

0

Cette erreur se produit lorsque vous avez deux copies de la classe empaquetée.

Selon votre description, une copie est dans le déploiement pour le pilote Oracle. La deuxième copie est dans l'application.

Supprimez-le de l'application et, au lieu de déployer Oracle JAR dans le répertoire de déploiement, créez-en module.

+0

Merci pour votre aide. Mais quand je supprime le pot de mon application, j'obtiens une exception ClassNotFound à la place de ClassCastException. Je crée déjà un module pour créer une source de données JDBC. –