Подтвердить что ты не робот

IncompatibleClassChangeError: класс ClassMetadataReadingVisitor имеет интерфейс ClassVisitor как суперкласс

Я создал веб-приложение с использованием spring -mvc и mongodb в качестве базы данных. Я использовал maven3 для создания приложения.

Проект выполняется успешно, но когда приложение запускается, я получаю следующую ошибку в журналах, из-за которых мое приложение не запускается. Это работало несколько месяцев назад.

Вызвано: java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor имеет интерфейс org.springframework.asm.ClassVisitor как суперкласс

Пожалуйста, дайте мне знать, если какие-либо указатели или вам больше нужна информация.

4b9b3361

Ответ 1

Эта ошибка возникает, когда загруженный класс i.e. ClassMetadataReadingVisitor не соблюдает контракт наследуемого абстрактного класса или интерфейса, т.е. ClassVisitor.

Похоже, что во время загрузки различные версии вышеуказанных классов загружаются в ваш случай.

Кажется, у вас есть новый spring -core jar и старый spring -asm jar в вашем приложении. ClassMetadataReadingVisitor класс загружается из spring -core и ClassVisitor из spring -asm.

Пожалуйста, проверьте с помощью команды maven dependency:tree, чтобы увидеть зависимые баночки.

Ответ 3

Эта ошибка обычно появляется, когда используются несовместимые версии банок, например spring-asm и spring-core. Посмотрите forum.springsource.org/showthread.php?133341

Ответ 4

У меня была такая же проблема, и я столкнулся с ней, удалив мою зависимость spring-data-jpa от pom.xml

Он уже включен в зависимость spring-core.