Tomcat类加载器无法正常工作

时间:2013-10-02 06:14:28

标签: java tomcat tomcat7 classloader

我需要你的帮助。我正面临处理Tomcat类加载器的异常问题。我有一个WAR,在WAR内部有一个具有本机方法的第三方JAR。 WAR首次成功部署在开发服务器中,并且运行了大约3个月。

上周,我做了一些代码重构,并希望部署更新的WAR,所以我删除了旧实例并部署了WAR。但是现在在重新部署之后,我总是面对NoClassDefFoundError。我多次重新部署WAR,结果是相同的,NoClassDefFoundError。

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

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

开发服务器中的Tomcat出了什么问题?

1 个答案:

答案 0 :(得分:1)

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

如果您发送包含本机库的WAR,那么最安全的方法是每次需要更新应用程序时重新启动Tomcat。