Spring / Glassfish 3.1.2陈旧文件

时间:2013-05-10 09:51:45

标签: java spring java-ee glassfish

我目前正在使用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使用。

我找到了这个链接: https://www.java.net//forum/topic/glassfish/glassfish/stale-files-when-undeploying-web-app-glassfish-3

我的问题是:是否有人针对此问题采取了解决方法?

在开发时真的很烦人......

2 个答案:

答案 0 :(得分:8)

要纠正这个问题,我有一个更简单的解决方案:
假设您的EAR文件正确无误:

  1. 停止服务器
  2. 转到您的EAR目录: C:\ java_apps \ glassfish3 \ glassfish \ domains \ domain1 \ applications \ XXX_EAR
  3. 删除名为.glassfishStaleFiles的文件
  4. 重新启动服务器并重新部署EAR文件
  5. 它为我做了诀窍。

答案 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会正确卸载。