Java在Tomcat上部署战争,给出NoClassDefFoundError

时间:2016-05-10 07:17:11

标签: java maven tomcat war noclassdeffounderror

这是一个荒谬的场景,因为我完全无能为什么会发生这种情况。

我创建了一个Java servlet,(maven)打包为战争,部署在Tomcat server上。它在2台测试机器上工作正常(相信我),但是当它在另一台机器上移动时,该api的任何命中都会为特定的类提供NoClassDefFoundError

我已经检查了webapps文件夹中的解压缩项目目录,它包含该类。

这可能是什么原因?我已经检查了所有我能做到但没有线索的地方。我知道自己这个问题不是很明确,但这就是我的全部。

如果需要,任何其他细节都会在评论中提出。

编辑:(另外一个细节)

在这台新机器中升级了Tomcat版本...以前的机器有Apache Tomcat/7.0.59。这有Apache Tomcat/8.0.33。这可能是问题吗?

编辑:

我仍然不确定这个问题。在尝试查找该问题数小时后,我重新配置了该计算机...重新安装了jdkTomcat并在此部署并运行。

1 个答案:

答案 0 :(得分:1)

我的猜测是所有类都存在,但是在war文件的某个地方,有一个类使用另一个类,它位于本机工作机器的classpath中,而不是另一个类。 NoClassDefinitionClassNotFound不同,因此该类可能存在(不应该丢失)。不幸的是,听起来有一个依赖不在本机war文件中,但仍然运行和编译,因为它位于本机classpath

检查您的.bash_profile或导出类路径的位置,您可能会找到一些需要放入WAR的JAR文件。

Why am I getting a NoClassDefFoundError in Java?