webentwicklung-frage-antwort-db.com.de

java.lang.ClassNotFoundException: org.springframework.expression.ParserContext Spring HelloWorld?

Ich habe ein einfaches Spring HelloWorld-Programm. Sein Inhalt ist wie folgt:

 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 folgenden Fehler:

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

Als ich in pom.xml die Frühlingsversion von 4.3.2 auf 4.2.2 geändert habe, hat es gut funktioniert. Wieso ist es so?

8
Mahesha999

Ich bekam auch den gleichen Fehler und der Fehler wurde behoben, nachdem der Spring-Ausdruck lib hinzugefügt wurde

11

Ich habe Ihren Code in Eclipse getestet und funktioniert sowohl mit 4.2.2.RELEASE als auch mit 4.3.2.RELEASE. Es wird unter der Nachricht gedruckt. Können Sie bitte Ihren Build bereinigen oder Build über die Eingabeaufforderung ausführen.

Spring  : Hello ! Mahesha999
3
abaghel

Lösung: Fügen Sie die Datei "spring-expression-4.3.11.RELEASE.jar" in Ihr Projekt ein und erstellen Sie Ihr Projekt neu.

0
Ravan
i have use spring 4.3.11 version

so add the bellow jar into lib folder

1. commons-logging-1.1.1.jar
2. servlet-api.jar
3. spring-aop-4.3.11.RELEASE.jar
4. spring-beans-4.3.11.RELEASE.jar
5. spring-context-4.3.11.RELEASE.jar
6.spring-core-4.3.11.RELEASE.jar
7. spring-expression-4.3.11.RELEASE.jar
8. spring-web-4.3.11.RELEASE.jar
9.spring-webmvc-4.3.11.RELEASE.jar
0
Avinash Khadsan

Sie erhalten diesen Fehler nur, wenn es keine "spring-expression" -Lib gibt.
Lösung 1: Falls nach dem Hinzufügen des Spring-Ausdrucks lib noch vorhanden ist, fügen Sie eine neue Version der Spring Library hinzu.

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

0
Ragav