2016-08-24 2 views
5

У меня есть простая программа SpringWorld Spring. Его содержание следующим образом:java.lang.ClassNotFoundException: org.springframework.expression.ParserContext Spring HelloWorld?

enter image description here

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.mahesha999.examples.spring</groupId> 
    <artifactId>SpringExamples</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>4.3.2.RELEASE</version> 
     </dependency>  
    </dependencies> 

</project> 

eg1.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-4.0.xsd"> 

    <bean id="helloBean" class="com.mahesha999.examples.spring.eg1.HelloWorld"> 
     <property name="name" value="Mahesha999" /> 
    </bean> 

</beans> 

HelloWorld.java

public class HelloWorld { 
    private String name; 

    public void setName(String name) { 
     this.name = name; 
    } 

    public void printHello() { 
     System.out.println("Spring : Hello ! " + name); 
    } 
} 

App.java

import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 

public class App { 
    public static void main(String[] args) { 
     ApplicationContext context = new ClassPathXmlApplicationContext("eg1.xml"); 

     HelloWorld obj = (HelloWorld) context.getBean("helloBean"); 
     obj.printHello(); 
    } 
} 

Это дало мне следующую ошибку:

INFO: Loading XML bean definitions from class path resource [eg1.xml] 
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/expression/ParserContext 
    at org.springframework.context.support.AbstractApplicationContext.prepareBeanFactory(AbstractApplicationContext.java:628) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:516) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) 
    at com.mahesha999.examples.spring.eg1.App.main(App.java:8) 
Caused by: java.lang.ClassNotFoundException: org.springframework.expression.ParserContext 
    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.3.2 до 4.2.2 в pom.xml, он работал отлично. Почему это так?

+0

NoClassDefFoundError = ClassNotFoundError: http://stackoverflow.com/a/5756989/6735604 –

ответ

2

Я проверил ваш код в затмении, и он отлично работает с 4.2.2.RELEASE и 4.3.2.RELEASE. Он печатает ниже сообщения. Можете ли вы очистить сборку или запустить сборку из командной строки.

Spring : Hello ! Mahesha999 
+0

пробовал много раз от затмения – Mahesha999

+0

Как насчет запуска команды maven из командной строки? – abaghel

+0

отключен «Создать автоматически», изменен на «4.3.2», попробовал «maven install» из каталога проекта в командной строке, обновил проект в eclipse и запустил класс App. Такая же ошибка. Изменен на «4.2.2» с теми же шагами. Материал начал работать – Mahesha999

0

Вы получите эту ошибку, только когда не существует "spring-expression" lib.
Решение 1: В случае добавления весеннего выражения lib все еще существует, попробуйте добавить новую версию библиотеки весны.

solution 2: Удалите файл spring.xml вместе со своей упаковкой, а затем создайте новый пакет с spring.xml.

7

Я также получаю ту же ошибку, и она была исправлена ​​после добавления пружинного выражение Lib