Show Table of Contents
4.2.5. Déboguer et résoudre les problèmes de migration
Les ClassCastExceptions apparaissent souvent quand une classe est chargée par un chargeur de classes qui diffère de la classe qu'il étend. Souvent le résultat d'une même classe qui peut exister dans plusieurs JAR.
- Chercher dans l'application pour trouver tous les JAR qui contiennent la classe nommée par l'exception
ClassCastException. S'il y a un module défini pour la classe, chercher et supprimer les JAR en double des WAR et EAR de l'application. - Chercher le module JBoss qui contient la classe et qui définit explicitement la dépendance dans le fichier
MANIFEST.MFou dans le fichierjboss-deployment-structure.xml. Pour plus d'informations sur le chargement de classes, voir Chargement de classes et Sous-déploiements (Class Loading and Subdeployments) dans le chapitre Class Loading and Modules du Development Guide de JBoss EAP 6 https://access.redhat.com/site/documentation/JBoss_Enterprise_Application_Platform/. - Si vous ne pouvez le résoudre par les étapes ci-dessus, vous pourrez souvent déterminer la cause du problème en imprimant les informations de chargement de classe dans le log. Par exemple, vous pourrez voir l'exception
ClassCastExceptiondans le journal :java.lang.ClassCastException: com.example1.CustomClass1 cannot be cast to com.example2.CustomClass2
- Dans votre code, imprimer les informations de chargement de classe des classes nommées par
ClassCastExceptiondans le journal, comme suit :logger.info("Class loader for CustomClass1: " + com.example1.CustomClass1.getClass().getClassLoader().toString()); logger.info("Class loader for CustomClass2: " + com.example2.CustomClass2.getClass().getClassLoader().toString()); - L'information qui se trouve dans le journal montre les modules qui correspondent à des classes de chargement et, selon votre application, vous aurez besoin de retirer ou de déplacer les JAR qui entrent en conflit.

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.