【问题标题】:NoClassDefFoundError and ClassNotFoundExceptionNoClassDefFoundError 和 ClassNotFoundException
【发布时间】:2017-02-26 20:19:36
【问题描述】:

我正在使用 Eclipse,并且我已经配置了 Spring Framework 所需的所有 jar,它没有显示任何编译错误。但是,当我运行我的主要功能(测试类)时,它会填充我这个错误。我在这里错过了什么吗?请帮助我,找不到解决此问题的实际解决方案。

 Feb 27, 2017 1:15:20 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
    Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/expression/PropertyAccessor
        at org.springframework.context.support.AbstractApplicationContext.prepareBeanFactory(AbstractApplicationContext.java:481)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:398)
        at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
        at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
        at com.javatpoint.Test.main(Test.java:14)
    Caused by: java.lang.ClassNotFoundException: org.springframework.expression.PropertyAccessor
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 5 more

【问题讨论】:

    标签: java eclipse spring-mvc


    【解决方案1】:

    某些依赖项在编译时不需要,而在运行时才需要。

    缺少的类包含在spring-expression jar 中。您也可以下载它并将其添加到 Eclipse 中。

    【讨论】:

    • 所以我想我需要创建一个 Maven 项目,我必须在 pom.xml 中提到上述依赖项
    • 您可以像添加所有其他 jar 一样在 Eclipse 中将其添加为 jar。
    • 我在上面添加了jar,现在它显示了这个异常:Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/core/SpringProperties at org.springframework.expression.spel.SpelParserConfiguration.&lt;clinit&gt;(SpelParserConfiguration.java:36) at org.springframework.expression.spel.standard.SpelExpressionParser.&lt;init&gt;(SpelExpressionParser.java:41)
    • 我已经添加了 com.springsource.org.apache.commons.logging-1.1.1, org.springframework.beans-3.0.1.RELEASE-A, org.springframework.context-3.0.1 .RELEASE-A、org.springframework.core-3.0.1.RELEASE-A、org.springframework.expression-3.0.1.RELEASE-A 和 spring-expression-4.3.6.RELEASE jars
    • 所有 Spring 依赖项都应该使用相同的版本。否则,如您所见,可能存在不兼容性。您应该选择 4.x,因为 3.0.1 已经超过 7 年了。
    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    相关资源
    最近更新 更多