想知道是否有专家可以解释为什么会随机发生以下情况。
我们有一个部署在 Jetty 6.1.26 中的 Web 应用程序,该应用程序在带有 JRE 1.7_03 的 Linux 安装上运行
不是每次,而是偶尔,当 Jetty 启动时 - 似乎是一个随机类(来 self 们的项目)似乎是 NoClassDefFound 错误的来源。如果我们重新启动 Jetty,他们的问题就会消失。
出现的唯一模式似乎是错误根源处的类是通过 JAXB 注释填充的。
为了更清楚地了解这种情况发生的频率是 1/50 次(如果是的话)。
我很想知道这个错误的发生方式和原因。
最佳答案
不确定这是否有帮助,但我们遇到了 Jetty 8 和 java 6 的注释问题。 长话短说,该版本中的注释处理似乎依赖于 libasm,例如字节码检查。所以我们必须小心
- 我们用什么编译我们的类(例如;JDK 版本等...)
- 我们不会通过我们的依赖项拉取多个 asm/javassist 库并最终加载错误的库
我不熟悉 Jetty 6 和 Jaxb 处理注释的方式,但我真的很惊讶你能在 Java 7 上运行它们。你能尝试用 Java 6 运行你的代码吗?
关于java - Web 应用程序中的随机 NoClassDefFound 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12705355/