У меня есть следующий код.Spring 4.2 ApplicationContext NoClassDefFound Ошибка
// MessagePrinter.java
public class MessagePrinter {
private String message;
public MessagePrinter(String input){
message = input;
}
}
// ApplicationConfig.java
@Configuration
public class ApplicationConfig {
@Bean
public MessagePrinter getMessagePrinter(){
return new MessagePrinter("Bean");
}
}
// Application.java
public class Application {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class);
}
}
Я получаю ошибку при запуске приложения в Eclipse, является java.lang.NoClassDefFoundError
. Я нахожусь в процессе перехода от cplusplus к java и совершенно нового в Spring Framework. Вся документация, которую я читаю в Интернете, говорит мне, что этот код должен работать нормально. Моя цель - извлечь класс MessagePrinter из ApplicationContext, который создается в основном. Однако первый оператор сам вызывает сбой кода. Любые подсказки? Я абсолютный Java noob. Поэтому не стесняйтесь указывать на наиболее очевидные.
Я использую Spring 4.2.7
Действительное сообщение об ошибке от Eclipse, приводится ниже.
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:159)
at org.springframework.context.support.GenericApplicationContext.<init>(GenericApplicationContext.java:102)
at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:60)
at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:82)
at hello.Application.main(Application.java:8)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 5 more
вы добавили необходимые пружинные связанные банки в пути к классам? –
Я добавил весной 4.2.7 банок в качестве внешних банок в пути сборки для свойств проекта eclipse. Это то, что вы имеете в виду? Я не копировал банки в локальную папку. – cplusplusrat
Я не знаю, какие все весенние банки вы используете. 'AnnotationConfigApplicationContext' находится в контейнере весеннего контекста. –