有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Tomcat类加载器不工作

我需要你的帮助。我在处理Tomcat类加载器时遇到了一个不寻常的问题。我有一个WAR,在WAR中有一个第三方JAR,它有本地方法。WAR首次成功部署在开发服务器中,并已运行了约3个月

上周,我进行了一些代码重构,并希望部署更新后的WAR,因此我删除了旧实例并部署了WAR。但现在在重新部署之后,我总是面临错误。我多次重新部署战争,结果都是一样的,NoClassDefFoundError

奇怪的是,当我在笔记本电脑中部署更新后的WAR时,它也使用Tomcat,工作正常。我的同事也尝试使用Tomcat在他的笔记本电脑上部署,效果很好

我已经删除了工作目录中的文件,但仍然出现NoClassDefFoundError。我关闭了Tomcat,删除了webapp文件夹中的实例,在webapp文件夹中再次复制更新的WAR,再次打开Tomcat,但仍然显示错误

开发服务器中的Tomcat有什么问题


共 (1) 个答案

  1. # 1 楼答案

    在JVM的生命周期中,只能注册一次本机库。我怀疑当您更新WAR时,它试图再次注册本机库,但失败了,这反过来导致了NoClassDefFoundError。重新启动Tomcat服务器修复了这个问题,这与这个理论是一致的

    如果你发布了一个包含本机库的WAR,那么最安全的方法就是在每次需要更新应用程序时重新启动Tomcat