Tomcat不会卸载Web应用程序

时间:2015-03-13 17:35:15

标签: java tomcat

我在Linux上的Tomcat中运行了一个Web应用程序。我的webapp使用第三方jar,jar使用本机库。

每当我重新部署我的应用程序时,Tomcat都会注意到新的war文件并重新加载我的应用程序。但是,它显然没有卸载以前的版本,当我尝试执行使用jar的代码时,我收到此错误:

java.lang.UnsatisfiedLinkError:本机库/var/cache/tomcat7/temp/libaocr_x64.so已经加载到另一个类加载器中

如果我重新启动整个Tomcat进程,我可以清除错误,但我不想这样做。

是什么导致Tomcat不发布旧版本的应用程序?

我知道这种问题有时是由连接池引起的,这些连接池有线程运行来监控连接 - 我的应用程序中有连接,但我不认为它是配置为运行此类线程。

谢谢, 弗兰克

1 个答案:

答案 0 :(得分:0)

JNI是如此低级,以至于它不在Tomcats Container之外。不幸的是你无法卸载图书馆。

尝试将jar放入tomcat的endorsed-folder($CATALINA_HOME/commons/endorsed),但它将可用于tomcat中的每个应用程序。