Java Spring/Glassfish 3.1.2陈旧文件

Java Spring/Glassfish 3.1.2陈旧文件,java,spring,jakarta-ee,glassfish,Java,Spring,Jakarta Ee,Glassfish,我目前正在使用SpringWebMVC和SpringSecurity开发一个应用程序 我可以在Glassfish 3.1.2上部署它,但当我想在修复一些错误后重新部署时,我会遇到以下错误: WARNING: Exception while locating sub archive: XXX.war WARNING: DPL8031: Ignoring XXX_war/ because the containing archive C:\dev\apps\glassfish3\glassfish\

我目前正在使用SpringWebMVC和SpringSecurity开发一个应用程序

我可以在Glassfish 3.1.2上部署它,但当我想在修复一些错误后重新部署时,我会遇到以下错误:

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
.GlassFishStage文件包含:

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仍然在使用它

我找到了这个链接:

我的问题是:有人有解决这个问题的方法吗


开发时真的很烦人…

好吧,经过几天的研究

我终于找到了四处走动的方法

我的项目层次结构是:

XXX.ear
--- lib/
------ XXX_Entities.jar
--- XXX_Ejb.jar
--- XXX_EjbClient.jar
--- XXX_Web.war
------ WEB-INF/lib/
--------- *libraries*
现在:


然后将lib文件夹添加到EAR部署程序集,它将工作。取消部署时Glassfish将正确卸载。

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

  • 停止服务器
  • 转到您的EAR目录: C:\java\u apps\glassfish3\glassfish\domains\domain1\applications\XXX\u EAR
  • 删除名为.glassfishStaleFiles的文件
  • 重新启动服务器并重新部署EAR文件

  • 事实上,有时候只有这个文件
    。glassfishStaleFiles
    ,但有时候子文件夹中的库仍然被认为已加载,无法删除。确实,停止/删除/重新启动可以工作,但它比我的解决方案需要更多的时间。这对我有很大帮助。
    XXX.ear
    --- lib/
    ------ XXX_Entities.jar
    ------ *libraries*
    --- XXX_Ejb.jar
    --- XXX_EjbClient.jar
    --- XXX_Web.war