2016-08-24 1 views
5

Ich habe ein einfaches Spring HelloWorld Programm. Sein Inhalt sind wie folgt:java.lang.ClassNotFoundException: org.springframework.expression.ParserContext Frühling 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(); 
    } 
} 

Dies gab mir folgende Fehlermeldung:

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 

Wenn ich Feder Version von 4.3.2 bis 4.2.2 in pom.xml geändert, es hat gut funktioniert. Wieso ist es so?

+0

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

Antwort

2

Ich testete Sie Code in Eclipse und es funktioniert gut mit beiden 4.2.2.RELEASE und 4.3.2.RELEASE. Es wird unter der Nachricht gedruckt. Können Sie bitte reinigen Sie Build oder Build Build von der Eingabeaufforderung.

Spring : Hello ! Mahesha999 
+0

versucht, dass viele Male von Eclipse – Mahesha999

+0

Was ist mit dem Ausführen der Maven Build von der Eingabeaufforderung? – abaghel

+0

deaktiviert "Build automatisch", geändert zu "4.3.2", versuchte "Maven-Installation" aus dem Projektverzeichnis in der Eingabeaufforderung, aktualisiert das Projekt in Eclipse und führte die App-Klasse. Derselbe Fehler. Zurück zu '4.2.2' mit den gleichen Schritten. Stuff wurde gestartet – Mahesha999

0

Sie erhalten diesen Fehler nur, wenn keine "Spring-Expression" -BIB vorhanden ist.
Lösung 1: Falls nach dem Hinzufügen von Spring-Ausdruck Lib noch vorhanden ist dann versuchen Sie, neue Version der Feder-Bibliothek.

Lösung 2: Löschen Sie Ihre Datei spring.xml zusammen mit ihrem Paket und erstellen Sie dann ein neues Paket mit spring.xml.

7

Ich wurde auch die gleichen Fehler und es wurde festgelegt nach der Zugabe des feder Ausdruck lib

Verwandte Themen