4.2.5. Depurar y resolver ClassCastExceptions


ClassCastExceptions con frecuencia tienen lugar ya que una clase está siendo cargada por medio de un cargador de clase diferente de la clase que extiende. También pueden ser el resultado de la misma clase existente en múltiples JARs.
  1. Busque la aplicación para encontrar todas las JAR(s) que contienen la clase nombrada por la ClassCastException. Si hay un módulo definido para la clase, encuentre y borre las JAR(s) duplicadas del WAR o EAR de la aplicación.
  2. Busque el módulo JBoss que contiene la clase y defina explícitamente la dependencia en el archivo MANIFEST.MF o en el archivo jboss-deployment-structure.xml. Para mayor información consulte Class Loading and Subdeployments en el capítulo titulado Class Loading and Modules en la Development Guide para JBoss EAP 6 en https://access.redhat.com/site/documentation/JBoss_Enterprise_Application_Platform/.
  3. Si no puede resolverlo usando los pasos anteriores, con frecuencia puede determinar la causa del problema imprimiendo la información del cargador de clases en el registro. Por ejemplo, puede ver la siguiente ClassCastException en el registro:
    java.lang.ClassCastException: com.example1.CustomClass1 cannot be cast to com.example2.CustomClass2
    Copy to Clipboard Toggle word wrap
    1. En su código imprima la información del cargador de clases para las clases nombradas por la ClassCastException para el registro, por ejemplo:
      logger.info("Class loader for CustomClass1: " + 
            com.example1.CustomClass1.getClass().getClassLoader().toString());
      logger.info("Class loader for CustomClass2: " + 
            com.example2.CustomClass2.getClass().getClassLoader().toString());
      
      Copy to Clipboard Toggle word wrap
    2. La información en el registro muestra qué módulos están cargando las clases y con base en su aplicación necesitará borrar o mover las JAR(s) que causan conflictos.
Volver arriba
Red Hat logoGithubredditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar. Explore nuestras recientes actualizaciones.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

Theme

© 2025 Red Hat