【问题标题】:NoClassDefFoundError for resource in build path构建路径中资源的 NoClassDefFoundError
【发布时间】:2021-05-04 08:40:09
【问题描述】:

我正在尝试将 Apache Ignite 添加到在 Eclipse 中使用 ant 构建的现有 CSV 项目(这些都不是我可以控制的)。

我已将以下 jar 添加到构建路径:

  • cache-api-1.1.1.jar
  • ignite-core-2.9.1.jar
  • ignite-core-2.9.1-javadoc.jar
  • ignite-core-2.9.1-sources.jar
  • ignite-spring-2.9.1
  • ignite-spring-2.9.1-javadoc -ignite-spring-2.9.1-sources

我可以在 Eclipse 中从 Ignite 导入我需要的内容,并且该项目没有错误地符合,但是当我启动已编译的应用程序时,我收到以下错误:

org.springframework.beans.factory.BeanCreationException:创建在类路径资源 [yyyyy.xml] 中定义的名称为“xxxx”的 bean 时出错:bean 的实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException: 无法实例化 [xxxx]: 构造函数抛出异常;嵌套异常是 java.lang.NoClassDefFoundError: org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder …… 引起:构造函数抛出异常;嵌套异常是 java.lang.NoClassDefFoundError: org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder

但是在 Eclipse 中,我可以在项目资源管理器中展开 Referenced Libraries->ignite-core-2.9.1.jar 并查看 spi.discovery/tcp/ipfinder/TcpDiscoveryIpFinder

作为一个额外的转折,未能实例化的类甚至不使用 Ignite 或 TcpDiscoveryIpFinder。

这个过程过去曾用于向项目中添加诸如 Mockito 之类的东西,但在这种情况下不是。

【问题讨论】:

    标签: java spring eclipse build ignite


    【解决方案1】:

    好的,经过思考后,我意识到我需要将 ignite jar 添加到 apache-tomcat/lib。

    这解决了问题。

    Mokito 之前没有发生这种情况的原因是所有单元测试都只在 Eclipse 中运行,而不是在实际应用程序中。

    【讨论】:

      猜你喜欢
      • 2018-03-09
      • 2012-12-01
      • 2013-10-02
      • 1970-01-01
      • 2015-10-24
      • 2012-03-16
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多