gpt4 book ai didi

java - 一场 war 中的类(class)无法访问同一耳朵的另一场 war 中的类(class)

转载 作者:行者123 更新时间:2023-12-02 09:44:15 25 4
gpt4 key购买 nike

我有一个耳朵,它由 2 个 war 文件组成,一个包含 junit 类,另一个包含 junit 引用的实际应用程序类。现在,当执行 junits 时,我得到一个 java.lang.NoClassDefFoundError

是否是由于junit类文件位于不同的耳朵中,因此无法访问位于另一个耳朵中的应用程序类文件?

或者

这是否是由于部署问题造成的,尽管我能够运行应用程序以及一些独立于另一只耳朵中的应用程序类的 junit?

最佳答案

根据严格的 JavaEE 可见性语义,WAR 中的类对于同一 EAR 的其他组件不应该是可见的。 JBoss 稍微放宽了这一点,并尝试使类加载层次结构扁平化以使其不那么烦人,但 WAR 限制仍然存在。

我使用的解决方案是仅将 Web 资源放入 WAR 中,并将 WAR 的类文件放入 EAR 内的单独 JAR 中。这样,Web 应用程序本身就可以找到类,您的单元测试 Web 应用程序也可以找到这些类。

关于java - 一场 war 中的类(class)无法访问同一耳朵的另一场 war 中的类(class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1086557/

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