![](/img/trans.png)
[英]ClassLoader.getSystemResourceAsStream not working when running on tomcat
[英]Tomcat classloader is not working
我需要你的帮助。 我在处理Tomcat类加载器时遇到异常问题。 我有一个WAR,并且在WAR中有一个具有本机方法的第三方JAR。 WAR首次成功部署在开发服务器中,已经运行了大约3个月。
上周,我进行了一些代码重构,并希望部署更新的WAR,因此我删除了旧实例并部署了WAR。 但是现在,在重新部署之后,我始终会遇到NoClassDefFoundError。 我多次重新部署了WAR,结果还是一样,NoClassDefFoundError。
奇怪的是,当我在笔记本电脑中部署更新的WAR时也使用Tomcat,它工作正常。 我的同事还尝试使用Tomcat部署在他的笔记本电脑中,效果很好。
我已经删除了工作目录中的文件,但是仍然出现NoClassDefFoundError。 我已经关闭了Tomcat,删除了webapp文件夹中的实例,再次将更新的WAR复制到webapp文件夹中,再次打开了Tomcat,但是仍然显示错误。
开发服务器中的Tomcat有什么问题?
您只能在JVM的生存期内注册一次本机库。 我怀疑当您更新WAR时,它试图再次注册本机库,但失败了,进而导致了NoClassDefFoundError。 重新启动Tomcat服务器已修复该问题,这与该理论是一致的。
如果您提供的WAR包含本机库,那么最安全的方法是每次需要更新应用程序时都重新启动Tomcat。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.