web-dev-qa-db-fra.com

IncompatibleClassChangeError: la classe ClassMetadataReadingVisitor a l'interface ClassVisitor en tant que super classe

J'ai construit une application Web en utilisant spring-mvc et mongodb comme base de données. J'ai utilisé maven3 pour construire l'application.

Le projet est construit avec succès, mais au démarrage de l'application, l'erreur suivante s'affiche dans les journaux, à cause de laquelle mon application ne démarre pas. Cela fonctionnait il y a quelques mois.

Causé par: Java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor a l'interface org.springframework.asm.ClassVisitor comme super classe

S'il vous plaît laissez-moi savoir si des pointeurs ou si vous les gars avez besoin de plus d'informations.

40
Sharad Yadav

Cette erreur se produit lorsque la classe chargée, à savoir ClassMetadataReadingVisitor, ne respecte pas le contrat de la classe ou de l'interface abstraite héritée, à savoir, ClassVisitor.

Au moment du chargement, différentes versions des classes ci-dessus sont chargées dans votre cas.

Il semble que vous ayez un nouveau bocal à ressort et un vieux bocal à ressort dans votre application. ClassMetadataReadingVisitor class commence à être chargé à partir de spring-core et ClassVisitor à partir de spring-asm .

Vérifiez si vous utilisez la commande maven dependency:tree pour voir les fichiers JAR dépendants.

74
Bhushan Bhangale

Dans la version de printemps> 3.2.0, vous n'avez plus besoin d'inclure explicitement spring-asm car il a déjà été inclus dans spring-core.

Supprimez spring-asm de votre définition de construction et assurez-vous que spring-core est présent.

http://static.springsource.org/spring-framework/docs/current/spring-framework-reference/html/migration-3.2.html#migration-3.2-inline-asm

41
Alex Bretet

Cette erreur apparaît généralement lorsque des versions incompatibles de fichiers JAR sont utilisées, par exemple spring-asm et spring-core. Jetez un coup d'oeil à forum.springsource.org/showthread.php?133341

7
Himanshu Bhardwaj

J'ai eu le même problème et j'y ai fait face en supprimant ma dépendance spring-data-jpa de pom.xml

Il est déjà inclus dans la dépendance spring-core.

0
Germán Acosta

Mise à jour pour ceux qui passent aux versions supérieures à 3.1.x ... comme indiqué clairement par cette réponse ici il n'y a plus de spring-asm séparé, il serait donc préférable d'exclure spring-asm complètement, une fois que vous êtes à la version 3.2 de Spring .X

0
Stewart