Spring/Glassfish 3.1.2陈旧文件

Lud*_*ume 5 java spring glassfish java-ee

我目前正在使用Spring Web MVC和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
Run Code Online (Sandbox Code Playgroud)

.glassfishStaleFiles包含:

XXX_war/
XXX_war/WEB-INF/
XXX_war/WEB-INF/lib/
XXX_war/WEB-INF/lib/spring-web-3.2.2.RELEASE.jar
Run Code Online (Sandbox Code Playgroud)

事实上,spring-web-3.2.2.RELEASE.jar仍然存在,当我尝试删除它时,我收到一条消息,说它仍然被JVM使用.

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

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

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

Pat*_*t B 8

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

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

它为我做了伎俩.


Lud*_*ume 4

好吧,经过几天的研究...

我终于找到了如何出行。

我的项目层次结构是:

XXX.ear
--- lib/
------ XXX_Entities.jar
--- XXX_Ejb.jar
--- XXX_EjbClient.jar
--- XXX_Web.war
------ WEB-INF/lib/
--------- *libraries*
Run Code Online (Sandbox Code Playgroud)

现在 :

XXX.ear
--- lib/
------ XXX_Entities.jar
------ *libraries*
--- XXX_Ejb.jar
--- XXX_EjbClient.jar
--- XXX_Web.war
Run Code Online (Sandbox Code Playgroud)

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