【问题标题】:NoClassDefFoundError on a dependency class in a web applicationWeb 应用程序中依赖类的 NoClassDefFoundError
【发布时间】:2013-04-29 06:37:18
【问题描述】:

我有一个 Web 应用程序 A,它依赖于库 B,而库 B 又使用库 C。A、B 和 C 都是 Maven 项目(A 是 war,B 和 C 是 jars )。

当我将 A 部署到应用程序容器时,会调用 B 中某个类的某个方法,该方法引用库 C 中的 D 类。

那时,我得到了一个 NoClassDefFoundError 用于 D.D 使用(导入)包 java.sqlorg.slf4j

我探索了以下假设,但没有一个是正确的:

  1. 使用了不同版本的C。为了排除这个假设,我在A的目录中运行mvn dependency:tree,发现只有一个对C的引用。
  2. C 不包含在 A 的 war 文件中。 我打开文件 target\A.war\WEB-INF\lib\C.jar\ 并且 D 的类文件出现在正确的位置(即这个假设不正确)。

我该如何解决这个错误?

【问题讨论】:

  • 如果 D 类在 jar C 中但未打包到 war 文件中,则您的 war 项目中的依赖项有问题。只需显示所有 pom 文件,以便提供帮助。
  • @khmarbaise D 打包到war文件中。
  • 请出示 pom 文件!
  • 并在全新部署后显示异常的完整堆栈跟踪。

标签: java jakarta-ee maven maven-3 noclassdeffounderror


【解决方案1】:

问题是由于库 B 被 ProGuard 混淆了。在我禁用它的混淆后,一切都开始工作了。

【讨论】:

    猜你喜欢
    • 2020-04-19
    • 2016-06-24
    • 2011-09-25
    • 1970-01-01
    • 2023-03-30
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    相关资源
    最近更新 更多