Ich habe ein einfaches Spring HelloWorld-Programm. Sein Inhalt ist wie folgt:
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?
Ich bekam auch den gleichen Fehler und der Fehler wurde behoben, nachdem der Spring-Ausdruck lib hinzugefügt wurde
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
Lösung: Fügen Sie die Datei "spring-expression-4.3.11.RELEASE.jar" in Ihr Projekt ein und erstellen Sie Ihr Projekt neu.
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
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.