问题描述
我们知道,NoClassDefFoundError 是指在编译时该类可用,但是第一次访问它并尝试通过 JVM 中的 ClassLoader 加载它时,没有找到。然而,在编译时,我的类在一个不同的包中(不是在 /dictionary 中,而是在 /model 中),并且好像类加载器在错误的地方寻找它一样。
重要的是,在与这个类的包的同一级别,有一个同名的包(唯一的区别是第一个小写字母),错误就在于此。然而,这将是一个奇怪的“名称冲突”,我通过为另一个类在其包中使用此类名称创建一个包来检查这种情况 - 正如预期的那样,我没有收到 NoClassDefFoundError 。 package hierarchy
我认为这是由于 Wildfly 本身或其他一些配置中的某种类路径设置,但我无法弄清楚。预先感谢您的合作!
Caused by: java.lang.NoClassDefFoundError: model/dictionary (wrong name: model/Dictionary)
at java.lang.classLoader.defineClass1(ClassLoader.java) [rt.jar:1.8.0_231]
at java.lang.classLoader._jr$defineClass(ClassLoader.java:756) [rt.jar:1.8.0_231]
at java.lang.classLoader.defineClass(ClassLoader.java:42016) [rt.jar:1.8.0_231]
at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:361) [jboss-modules.jar:1.3.3.Final]
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:482) [jboss-modules.jar:1.3.3.Final]
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)