I';我在使用Drools和Tomcat 6重新部署应用程序时遇到问题

I';我在使用Drools和Tomcat 6重新部署应用程序时遇到问题,tomcat,drools,Tomcat,Drools,我有一个使用的spring应用程序。除了在开发过程中进行更改后尝试重新部署(即热部署)应用程序外,它工作正常。tomcat似乎锁定了两个drools jar文件:drools-compiler-5.0.1.jar和drools-core-5.0.1.jar。由于无法删除它们,因此不会部署新的war文件。如果我的应用程序没有进行任何Drools逻辑调用,那么热部署就可以工作 有人有什么想法吗 我不知道drools的具体情况,但很可能Tomcat classloader无法完全卸载您的应用程序。此处

我有一个使用的spring应用程序。除了在开发过程中进行更改后尝试重新部署(即热部署)应用程序外,它工作正常。tomcat似乎锁定了两个drools jar文件:drools-compiler-5.0.1.jar和drools-core-5.0.1.jar。由于无法删除它们,因此不会部署新的war文件。如果我的应用程序没有进行任何Drools逻辑调用,那么热部署就可以工作


有人有什么想法吗

我不知道drools的具体情况,但很可能Tomcat classloader无法完全卸载您的应用程序。此处解释了commons日志记录的类似问题:


作为一种解决方法,您可以尝试在
$tomcat_home/conf/context.xml
中使用antiresourcelock=“true”。这至少有助于释放锁。有关更多详细信息,请参考。

顺便提一下,JavaMail中的
mail.jar
也存在类似问题。只要你至少发送了一封邮件,它就会“挂起”。根本问题是由操作系统引起的。Windows在这方面是众所周知的。@FrankL-如果这有帮助,不要忘记将答案标记为已接受:)@BalusC-我认为在这种情况下不能因为Java进程持有文件锁而责怪Windows。是的,我更喜欢Linux风格的锁定,但这里的根本问题是Java(特定的库或语言),而不是操作系统。感谢您在使用本论坛时给出的答案和意见。我对它还不熟悉,但将来会更多地使用它。