Java 如何在不停止服务器的情况下删除JBoss中的爆炸战争?
我可以删除除lib文件夹之外的所有内容(JBoss说应用程序未部署,但他不会发布JAR) 我将jboss maven插件和硬取消部署绑定在一起,但是它说文件(doc说它也支持dirs)已经取消部署,但是它没有取消部署应用程序Java 如何在不停止服务器的情况下删除JBoss中的爆炸战争?,java,jboss,deployment,explode,exploded,Java,Jboss,Deployment,Explode,Exploded,我可以删除除lib文件夹之外的所有内容(JBoss说应用程序未部署,但他不会发布JAR) 我将jboss maven插件和硬取消部署绑定在一起,但是它说文件(doc说它也支持dirs)已经取消部署,但是它没有取消部署应用程序 我正在使用jboss-4.2.1.GA。我打赌它可以通过jmx控制台取消部署,但我无法找到方法。在“从工作中”和jboss安装下的tmp文件夹下手动删除应用程序。在之前停止JBoss,在之后启动它。这将有所帮助。我认为发生的是: WAR文件已部署并分解 当应用程序启动时,它
我正在使用jboss-4.2.1.GA。我打赌它可以通过jmx控制台取消部署,但我无法找到方法。在“从工作中”和jboss安装下的tmp文件夹下手动删除应用程序。在之前停止JBoss,在之后启动它。这将有所帮助。我认为发生的是:
- 它可能无法访问,但GC尚未运行
- 它可能已经泄漏,所以即使GC运行,它也不会被删除
唯一可靠的解决方案是关闭并重新启动JBoss。Seam执行解除部署已分解应用程序的方式是
<target name="unexplode" description="Undeploy the exploded archive">
<delete failonerror="no">
<fileset dir="${ear.deploy.dir}">
<exclude name="**/*.jar"/>
</fileset>
</delete>
<delete file="${deploy.dir}/${project.name}-ds.xml" failonerror="no"/>
<delete dir="${ear.deploy.dir}" failonerror="no"/>
</target>
这通常效果很好,有时我需要重新启动(通过触摸部署人员观察到的文件)
lib没有完全从类加载器中卸载。JVM拥有文件句柄,尤其是windows无法删除文件。在我停止服务器后,我只需要删除分解的目录,但我希望能够在不停止服务器的情况下取消部署。Hotdeployment(取消部署)不应在生产环境中使用。我不同意,我认为不重新部署webapp更有效率:)我认为您指的是生产环境。
<target name="restart-exploded">
<antcall target="explode"/>
<touch file="${ear.deploy.dir}/META-INF/application.xml"/>
</target>