如何在不停止服务器的情况下删除JBoss中的爆炸战争?

时间:2010-12-08 10:08:31

标签: java jboss deployment explode exploded

我可以删除除lib文件夹之外的所有内容(JBoss说应用程序已取消部署,但他不会发布jar文件。)

我绑定了jboss-maven-plugin和hard-unploy,但是它说文件(doc说它也支持dirs)是取消部署的,但它不会取消部署应用程序。

我正在使用jboss-4.2.1.GA。我打赌它可以通过jmx-console取消部署,但我无法找到方法。

3 个答案:

答案 0 :(得分:1)

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>

这通常很有效,有时我需要重新启动(通过触摸部署者观察的文件)

<target name="restart-exploded">
    <antcall target="explode"/>
    <touch file="${ear.deploy.dir}/META-INF/application.xml"/>
</target>

答案 1 :(得分:0)

在jboss安装下的work and tmp文件夹下手动删除你的应用程序。之前停止JBoss并在之后启动它。这会有所帮助。

答案 2 :(得分:0)

我认为发生的事情是:

  1. 部署并展开WAR文件。
  2. 当您的应用程序启动时,其类加载器会打开JAR文件并锁定它们以防止它们被删除或覆盖。
  3. 然后停止并取消部署该应用程序。
  4. 不幸的是,类加载器仍然存在,并且它仍然存在的锁会阻止删除JAR文件。
  5. 类加载器可能仍然存在有两个原因:

    • 可能无法访问,但GC尚未运行。
    • 它可能已经泄露,因此即使GC运行也不会被删除。

    唯一可靠的解决方案是关闭并重新启动JBoss。