У вас есть две библиотеки, которые несовместимы из-за разных версий.
С одной стороны у вас есть spring-beans.jar
в версии 3.0.5 (или какой-либо другой версии 3.0.x). - Эта банка содержит org.springframework.beans.factory.annotation.InjectionMetadata
с конструктором с двумя параметрами public InjectionMetadata(Class targetClass, Collection<InjectedElement> elements)
.
И это единственный конструктор этого класса.
С другой стороны, у вас есть spring-orm.jar
, я не знаю его версию, но я думаю, что-то вроде 2.0.x или 3.1.x. Он содержит класс org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor
, который пытается создать экземпляр InjectionMetadata
с конструктором с одним параметром.
И этот результат в этом
java.lang.NoSuchMethodError: org.springframework.beans.factory.annotation.InjectionMetadata. (Ljava / lang / Class;) V
Решение простое: убедитесь, что spring-beans.jar
и spring-orm.jar
(как и все другие пружинные банки) имеют одинаковую версию.