gpt4 book ai didi

java - 包含外部项目的 NoClassDefFoundError - JBoss 7.1

转载 作者:行者123 更新时间:2023-12-02 07:21:34 24 4
gpt4 key购买 nike

我同时负责2个项目。第一个 (A) 是一个库,第二个 (B) 是一个在 JBoss AS 7.1 上运行的 Java EE 项目。

B 需要 A 的库。它们都是使用 Eclipse Juno 编写的。

我设法将 A 项目作为 jar 包含在 WEB-INF/lib 文件夹中。当我“重新发布”时,A.jar 会自动编译并包含在 WEB-INF/lib 文件夹中。

但是,当我想加载从 A 调用库的页面时,A 的类上出现 NoClassDefFoundError

最佳答案

当 JVM 或 ClassLoader 实例尝试加载类的定义并且在运行时找不到正确的定义时,会抛出 NOClassDefFoundError 。

因此,请检查您是否在库 A 中打包了该类的较旧(或错误)版本,该版本与您的 B 模块所需的版本不同(一个典型的示例是该类可以被找到了,但它没有应用程序调用者所需的方法定义)。

另一方面,请记住,默认情况下 JBoss 使用统一的类加载器和 Java 父委派,因此尽管一个库部署在同一 JBoss 实例中的多个模块中,但 JBoss 只加载一个(在模块之间共享它) ,优先考虑父项中包含的项。如果多个模块必须使用同一库的不同版本,这可能会导致意外行为。 因此,请检查您的 JBoss 实例中是否部署了库 A 的多个版本。

关于java - 包含外部项目的 NoClassDefFoundError - JBoss 7.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14153566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com