2013-05-10 71 views
4

我目前正在使用Spring Web MVC开发一个应用程序& Spring Security。Spring/Glassfish 3.1.2陈旧的文件

我可以在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

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

这同时深化发展真的很烦......

回答

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文件夹耳展开组件,它工作。 Glassfish在卸载时会正确卸载。

7

要解决此问题,我有一个简单的解决方案:
假设你的EAR文件是正确的:

  1. 停止服务器
  2. 转到您的EAR目录: C:\ java_apps \ glassfish3 \ GlassFish的\域\ DOMAIN1 \应用程序\ XXX_EAR
  3. 删除名为.glassfishStaleFiles
  4. 重启服务器并重新文件-deploy EAR文件

它为我做了诡计。

+0

实际上,有时候只有这个文件是'.glassfishStaleFiles',但有时在子文件夹中的一个lib仍然被认为是已加载的,无法删除。事实上,停止/删除/重新启动工作,但它比我的解决方案需要更多的时间。 – 2014-03-03 08:11:55

+1

这帮了我很多。 – 2017-03-04 09:20:34

+0

这为我工作 – dom 2017-04-30 12:23:30