【问题标题】:Receiving a NoClassDefFoundError even though jar is successfully downloaded via Maven and referenced in pom.xml即使 jar 已通过 Maven 成功下载并在 pom.xml 中引用,仍收到 NoClassDefFoundError
【发布时间】:2015-06-10 12:11:46
【问题描述】:

我收到的运行时异常是:

Caused by: java.lang.NoClassDefFoundError: org/springframework/core/io/Resource

即使我的项目中没有错误,并且我已通过“Maven 更新”进行更新并成功运行“Maven 全新安装”构建。我的 pom.xml 中的依赖是:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>4.1.4.RELEASE</version>
    <scope>compile</scope>
</dependency>

还尝试将范围设置为“提供”并且根本没有范围。 任何想法如何解决这个问题?

【问题讨论】:

  • 从您的 maven 存储库中删除依赖项,然后重试。
  • 请显示完整的 stacttrace。您在 Eclipse 或网络服务器中的何处运行程序?
  • 删除了依赖再添加,没有区别。在 Stackoverflow 上发现了一个类似的问题,他们通过将导致问题的 jar 添加到 /WEB-INF-lib 文件夹解决了这个问题.beans.FatalBeanException' 运行时异常?
  • 这表明没有 spring-beans 依赖,但这又在 pom.xml 中,所以不确定为什么 Maven 没有拾取这些 jars?

标签: xml eclipse spring maven dependency-injection


【解决方案1】:

好吧,我找到了一个解决方案,但仍然不确定 Eclipse 如何/为什么不再从 pom.xml 获取 Maven 依赖项。 相反,我不得不进入 Maven 依赖项文件夹并将所有需要的依赖项复制并粘贴到 /WEB-INF/lib 文件夹中,最后应用程序再次成功启动,没有运行时异常。

【讨论】:

    【解决方案2】:

    此错误与 ClassNotFoundException 不同,该错误表示该类在类路径中但不合适。所以问题与maven无关,应该是jdk版本或任何其他不一致。 你能检查你的jdk版本吗?

    【讨论】:

    • 嗯,我的jdk版本是1.7
    • 您是尝试通过 Eclipse 运行您的应用程序还是部署到应用服务器?如果您通过 eclipse 运行,我建议检查您的项目属性的部署程序集。
    • 将项目从 Eclipse 部署到本地 Tomcat 7
    • 您的项目设置 -> 部署程序集列表中是否有 Maven。 Maven 依赖 -> WEB-INF/lib
    • 是的 Maven 依赖项已准备好部署到项目属性中
    猜你喜欢
    • 2018-09-13
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    • 2017-05-03
    • 2012-06-04
    • 2011-11-25
    相关资源
    最近更新 更多