При выполнении очень простой Spring приложение и создания Bean Factory с FileSystemXmlApplicationContext, я сталкиваюсь с NoSuchMethodError.NoSuchMethodError по составлению Spring Application с FileSystemXmlApplicationContext
Файл beans.xml находится в корневом каталоге приложения с pom.xml и выглядит следующим образом:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
<bean id="person" class="com.xyz.practice.Person">
</bean>
</beans>
Класс Person выглядит следующим образом:
package com.xyz.practice;
public class Person {
public void speak(){
System.out.println("Hello I'm a Person");
}
}
И главная класс App.java выглядит следующим образом:
package com.xyz.practice;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class App {
public static void main(String[] args) {
ApplicationContext context = new FileSystemXmlApplicationContext("beans.xml");
Person person = (Person) context.getBean("person");
person.speak();
}
}
При запуске приложение, следующее исключение:
INFO: Loading XML bean definitions from file [/home/salmank/Documents/springWithAbc/beans.xml]
Exception in thread "main" java.lang.NoSuchMethodError: org.springframework.beans.factory.config.ConfigurableListableBeanFactory.clearMetadataCache()V
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:185)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:678)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:520)
at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:140)
at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:84)
at com.xyz.practice.App.main(App.java:9)
Это почти наверняка из-за несоответствия между версиями библиотеки Spring, который вы использовали при компиляции и версия развернутого на сервере. Версия в вашей системе разработки содержит этот метод, а развернутая версия - нет. –
Можете ли вы опубликовать pom.xml? Похоже, вы смешиваете разные версии Spring framework. –
@JimGarrison Информация о моих зависимостях: http://pastebin.com/fCSkuSwS –