【发布时间】: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.sql 和 org.slf4j。
我探索了以下假设,但没有一个是正确的:
-
使用了不同版本的C。为了排除这个假设,我在A的目录中运行
mvn dependency:tree,发现只有一个对C的引用。 -
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