这是一个荒谬的场景,因为我完全不知道为什么会这样。
我已经创建了一个javaservlet(maven),打包成war部署在上面 Tomcat server
. 它在两台测试机器上运行良好(相信我),但当它在另一台机器上移动时,对该api的任何点击都会给出 NoClassDefFoundError
对于一个特定的类。
我已经检查了 webapps
文件夹,它包含该类。
原因是什么?我已经查了所有我能查到的,但没有任何线索。我知道这不是一个很清楚的问题,但这是我所有的。
如果需要任何其他细节,请在评论中询问。
编辑:(更多细节)
这个 Tomcat
这个新机器升级了版本…以前的机器 Apache Tomcat/7.0.59
. 这已经 Apache Tomcat/8.0.33
. 这就是问题所在吗?
编辑:
我还是不确定这个问题。在试图找到问题很多小时后,我重新配置了机器…重新安装 jdk
以及 Tomcat
在这上面部署,它成功了。
1条答案
按热度按时间u59ebvdq1#
我猜所有的类都在那里,但是在war文件的某个地方,有一个类使用了
classpath
是本地的工作机器,而不是其他机器。NoClassDefinition
不同于ClassNotFound
,因此类可能在那里(不应丢失)。不幸的是,听起来有一个依赖项不在本机war文件中,但仍然在运行和编译,因为它在本机机器中classpath
.检查您的
.bash_profile
或者在导出类路径的任何地方,您可能会找到一些需要放入战争中的jar文件。为什么我在java中遇到noclassdeffounderror?