3

libフォルダー以外はすべて削除できます(JBossはアプリケーションがアンデプロイされていると言いますが、jarを解放しません)。

jboss-maven-plugin と hard-undeploy を関連付けましたが、ファイル (doc はディレクトリもサポートしていると述べています) はアンデプロイされていると表示されていますが、アプリケーションはアンデプロイされません。

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 ファイルの削除が妨げられています。

クラスローダがまだ存在している可能性がある理由は 2 つあります。

  • 到達できない可能性がありますが、GC は実行されていません。
  • リークされている可能性があるため、GC が実行されても削除されません。

唯一確実な解決策は、JBoss をシャットダウンして再起動することです。

于 2010-12-08T10:24:07.077 に答える