3

我可以删除除 lib 文件夹之外的所有内容(JBoss 说应用程序未部署,但他不会释放 jars)。

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

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

4

3 回答 3

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>
于 2010-12-08T10:31:17.083 回答
0

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

于 2010-12-08T10:12:41.757 回答
0

我认为发生的事情是:

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

类加载器可能仍然存在,原因有两个:

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

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

于 2010-12-08T10:24:07.077 回答