Show Table of Contents
4.2.5. Fehler- und Problembehebung von ClassCastExceptions
Es kommt oft zu ClassCastExceptions, da eine Klasse von einem anderen Klassenlader geladen wird als die Klasse, die sie erweitert. Sie können auch auftreten, wenn dieselbe Klasse in mehreren JARs existiert.
- Durchsuchen Sie die Applikation, um alle JAR(s) zu finden, die die Klasse namens
ClassCastExceptionenthalten. Falls ein Modul für die Klasse definiert ist, so suchen und entfernen Sie die doppelten JAR(s) aus dem WAR oder EAR der Applikation. - Suchen Sie das die Klasse enthaltende JBoss Modul und definieren Sie die Abhängigkeit explizit in der
MANIFEST.MF-Datei oder in derjboss-deployment-structure.xml-Datei. Weitere Informationen finden Sie unter Class Loading and Subdeployments im Kapitel Class Loading and Modules im Development Guide für die JBoss EAP 6 unter https://access.redhat.com/site/documentation/JBoss_Enterprise_Application_Platform/. - Falls Sie sie nicht mittels der Schritte oben auflösen können, so lässt sich die Ursache des Problems oftmals bestimmen, indem man die Klassenladerinformationen im Protokoll nachsieht. Wenn Sie zum Beispiel die folgende
ClassCastExceptionim Protokoll sehen:java.lang.ClassCastException: com.example1.CustomClass1 cannot be cast to com.example2.CustomClass2
- Drucken Sie in Ihrem Code die Klassenladeinformationen für die von der
ClassCastExceptiongenannten Klassen ins Protokoll, zum Beispiel:logger.info("Class loader for CustomClass1: " + com.example1.CustomClass1.getClass().getClassLoader().toString()); logger.info("Class loader for CustomClass2: " + com.example2.CustomClass2.getClass().getClassLoader().toString()); - Die Informationen im Protokoll zeigen, welche Module die Klassen laden und Sie müssen - je nach Ihrer Applikation - in Konflikt stehende JAR(s) entfernen oder verschieben.

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.