首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat热部署失败

Tomcat热部署失败
EN

Stack Overflow用户
提问于 2011-04-07 16:39:13
回答 2查看 2.2K关注 0票数 3

我想在tomcat中做热部署,但是失败了。我使用maven tomcat插件进行部署。当我调用"mvn tomcat:redeploy“时,war被成功上传到tomcat webapps文件夹。但它没有成功解包,因为我的原始not应用程序文件夹没有成功删除。WEB-INF/lib下仍然存在一个oracle jdbc jar。当我尝试手动删除它时,它不能被删除事件。它告诉我有一个进程正在使用它。我猜jdbc连接没有发布。

我该如何解决这个问题?谢谢

张杰夫

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-07 16:45:04

webapp未取消部署可能是由于webapp类加载器外部的引用持有webapp中的某些实例/类而导致webapp未被完全垃圾回收。这将在webapp中锁定这些jars,防止webapp文件被删除。

这是你自己的网络应用吗?如果是这样的话,你应该尝试用一个内存分析器在tomcat中分析它--执行一个部署,使用和取消部署周期,看看哪些引用保留了你的webapp的类/实例。

因为它是jdbc驱动程序,所以我将从查看数据源开始。例如,如果使用Spring配置数据源,请确保数据源已关闭。例如。

代码语言:javascript
复制
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

destroy-method="close"确保在webapp终止时数据源被正确关闭。

票数 1
EN

Stack Overflow用户

发布于 2012-07-13 21:30:27

你可以在tomcat的context.xml中更改antiJarLocking和antiResourceLocking属性,然后旧的war就可以成功删除,这样你就可以重新部署你的应用了。

代码语言:javascript
复制
<Context antiJARLocking="true" antiResourceLocking="true">    
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5578258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档