【问题标题】:Spring cannot resolve type in WEB-INF/libsSpring 无法解析 WEB-INF/libs 中的类型
【发布时间】:2012-05-24 16:45:09
【问题描述】:

我最近使用 HBase 启动了一个 Spring Web 项目。问题是,spring 似乎无法解析 WEB-INF/libs 下的类型。它抱怨“未解决的 org.apache.hadoop.conf.Configuration”是从所需的 .class 文件间接引用的,该文件实际上位于 WEB-INF/lib 库下的 .jar 中。有什么要设置让spring容器找到吗?

【问题讨论】:

  • 您是使用maven 还是通过您的IDE 构建?这个问题发生在编译时还是运行时?
  • 战争是由 maven 3 构建的,当我尝试使用 jetty-maven-plugin 对其进行测试时发生。编译很好。在运行时,如果我在 servlet 中手动导入类也很好。只是spring找不到类。

标签: java spring jar war


【解决方案1】:

您需要确保 Spring 本身是由同一个类加载器加载的:WAR 类加载器。此类加载器应包含 WEB-INF/lib 中的所有 JAR 和 WEB-INF/classes 中的所有 .class 文件。

有一种方法可以将类加载器传递给 Spring 以使用与加载它的类加载器(或 Thread 的上下文类加载器)不同的类加载器,但这会变得更加复杂。

【讨论】:

    【解决方案2】:

    好的,我有问题。似乎我的项目依赖于 hadoop-core-1.0.2 而 hbase 依赖于 hadoop-core-1.0.0 并且混淆了 Spring。我修复了依赖关系并解决了问题。

    【讨论】:

      猜你喜欢
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-10
      • 2017-09-07
      • 2014-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多