我正在尝试开发一个Spring "HelloWorld"项目,而我正在运行该应用程序,它给了我这个错误:
下面是我的代码:INFO:从类路径资源[Beans.xml]加载XML bean定义在线程"main"中出现异常java.lang.NoClassDefFoundError: org.springframework.expression.ExpressionParser
package com.tutorialspoint;
public class HelloWorld {
private String message;
public void getMessage() {
System.out.println("your message : "+message);
}
public void setMessage(String message) {
this.message = message;
}
}
和
package com.tutorialspoint;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainApp {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
HelloWorld obj = (HelloWorld) context.getBean("helloWorld ");
obj.getMessage();
// TODO Auto-generated method stub
}
}
中:
<?xml version="1.0" encoding="UTF-8"?>
<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-3.0.xsd">
<bean id="helloWorld" class="com.tutorialspoint/HelloWorld">
<property name="message" value="Hello World!"/>
</bean>
</beans>
除了添加所有依赖jar之外,bean
定义中定义的class
似乎无效
com.tutorialspoint/HelloWorld
^
,
<bean id="helloWorld" class="com.tutorialspoint.HelloWorld">
<property name="message" value="Hello World!"/>
</bean>
也应将context.getBean("helloWorld ")
改为context.getBean("helloWorld")
include
spring-expression-3.1.1.Release.jar
lib
文件夹下
我以3.1.1为例,你可以使用最新版本,如果有的话
将spring依赖项添加到class-path
如果您不使用Maven,如M Sach所说,将"spring expression-X.Release.jar"添加到您的"lib"文件夹中,并且不要忘记将其添加到Eclipse
此异常与spring-expression.jar相关。
在pom.xml
中添加以下依赖项
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>5.3.8</version>
</dependency>