我目前正在使用Spring Web MVC& amp; Spring Security。
我可以在Glassfish 3.1.2上部署它,但是当我想在修复bug之后重新部署时,我收到了这个错误:
WARNING: Exception while locating sub archive: XXX.war
WARNING: DPL8031: Ignoring XXX_war/ because the containing archive C:\dev\apps\glassfish3\glassfish\domains\domain1\applications\XXX recorded it as a pre-existing stale file
.glassfishStaleFiles包含:
XXX_war/
XXX_war/WEB-INF/
XXX_war/WEB-INF/lib/
XXX_war/WEB-INF/lib/spring-web-3.2.2.RELEASE.jar
事实上,spring-web-3.2.2.RELEASE.jar仍然存在,当我尝试删除它时,我收到一条消息,说它仍然被JVM使用。
我的问题是:是否有人针对此问题采取了解决方法?
在开发时真的很烦人......
答案 0 :(得分:8)
要纠正这个问题,我有一个更简单的解决方案:
假设您的EAR文件正确无误:
它为我做了诀窍。
答案 1 :(得分:4)
好的,经过几天的研究......
我终于找到了解决方法。
我的项目层次结构是:
XXX.ear
--- lib/
------ XXX_Entities.jar
--- XXX_Ejb.jar
--- XXX_EjbClient.jar
--- XXX_Web.war
------ WEB-INF/lib/
--------- *libraries*
现在:
XXX.ear
--- lib/
------ XXX_Entities.jar
------ *libraries*
--- XXX_Ejb.jar
--- XXX_EjbClient.jar
--- XXX_Web.war
然后将lib文件夹添加到EAR部署程序集,工作。取消部署时,Glassfish会正确卸载。