Show Table of Contents
4.2.5. Depuração e Resolução de ClassCastExceptions
ClassCastExceptions acontece com frequência quando uma classe é carregada por um carregador de classe diferente da classe que estende. Também pode ser o resultado da mesma classe existindo em múltiplos JARs.
- Procure pelo aplicativo para encontrar todo(s) JAR(s) que contém a classe nomeada pela
ClassCastException. Caso exista um módulo definido para a classe, encontre e remova os JAR(s) duplicados do WAR ou EAR do aplicativo. - Localize o módulo do JBoss contendo a classe e defina explicitamente a dependência no arquivo
MANIFEST.MFou no arquivojboss-deployment-structure.xml. Para mais informações, consulte Class Loading and Subdeployments no capítulo entitulado Class Loading and Modules no Development Guide para o JBoss EAP 6 em https://access.redhat.com/site/documentation/JBoss_Enterprise_Application_Platform/. - Caso não consiga resolver isto seguindo as etapas acima, geralmente é possível determinar a causa do problema imprimindo a informação do carregador de classe no log. Por exemplo, você encontrará o seguinte
ClassCastExceptionno log:java.lang.ClassCastException: com.example1.CustomClass1 não foi possível converter ao com.example2.CustomClass2
- No seu código, imprima a informação do carregador de classe para as classes nomeadas pela
ClassCastExceptionno log, por exemplo:logger.info("Class loader for CustomClass1: " + com.example1.CustomClass1.getClass().getClassLoader().toString()); logger.info("Class loader for CustomClass2: " + com.example2.CustomClass2.getClass().getClassLoader().toString()); - A informação no log mostra quais módulos estão carregando as classes e, baseado no seu aplicativo, será necessário remover ou mover o(s) JAR(s) em conflito.

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.