java在tomcat上部署war时出现noclassdeffounderror

9o685dep  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(898)

这是一个荒谬的场景,因为我完全不知道为什么会这样。
我已经创建了一个javaservlet(maven),打包成war部署在上面 Tomcat server . 它在两台测试机器上运行良好(相信我),但当它在另一台机器上移动时,对该api的任何点击都会给出 NoClassDefFoundError 对于一个特定的类。
我已经检查了 webapps 文件夹,它包含该类。
原因是什么?我已经查了所有我能查到的,但没有任何线索。我知道这不是一个很清楚的问题,但这是我所有的。
如果需要任何其他细节,请在评论中询问。
编辑:(更多细节)
这个 Tomcat 这个新机器升级了版本…以前的机器 Apache Tomcat/7.0.59 . 这已经 Apache Tomcat/8.0.33 . 这就是问题所在吗?
编辑:
我还是不确定这个问题。在试图找到问题很多小时后,我重新配置了机器…重新安装 jdk 以及 Tomcat 在这上面部署,它成功了。

u59ebvdq

u59ebvdq1#

我猜所有的类都在那里,但是在war文件的某个地方,有一个类使用了 classpath 是本地的工作机器,而不是其他机器。 NoClassDefinition 不同于 ClassNotFound ,因此类可能在那里(不应丢失)。不幸的是,听起来有一个依赖项不在本机war文件中,但仍然在运行和编译,因为它在本机机器中 classpath .
检查您的 .bash_profile 或者在导出类路径的任何地方,您可能会找到一些需要放入战争中的jar文件。
为什么我在java中遇到noclassdeffounderror?

相关问题