Как убрать разнесенную войну в JBoss без остановки сервера? - PullRequest
2 голосов
/ 08 декабря 2010

Я могу удалить все, кроме папки lib (JBoss говорит, что приложение не развернуто, но он не выпустит jar-файлы).

Я связал jboss-maven-plugin и hard-undeploy, однако он говорит, что файл (doc говорит, что он также поддерживает dirs) не развернут, однако он не отменяет развертывание приложения.

Я использую jboss-4.2.1.GA. Могу поспорить, что его можно удалить через jmx-console, но я не смог выяснить, как.

Ответы [ 3 ]

1 голос
/ 08 декабря 2010

Способ, которым 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>
0 голосов
/ 08 декабря 2010

Я думаю, что произойдет:

  1. Файл WAR развернут и взорван.
  2. Когда ваше приложение запускается, его загрузчик классов открывает файлы JAR и блокирует их, чтобы предотвратить ихот удаления или перезаписи.
  3. Затем вы останавливаете и отменяете развертывание приложения.
  4. К сожалению, загрузчик классов все еще существует, и блокировки, которые он сохраняет, препятствуют удалению файлов JAR.

Загрузчик классов все еще может существовать по двум причинам:

  • Он может быть недоступен, но сборщик мусора не запускается.
  • Возможно, произошла утечка, поэтому он выигралне удаляется, даже если ГХ работает.

Единственное верное решение - отключить и перезапустить JBoss.

0 голосов
/ 08 декабря 2010

Удалите ваше приложение вручную из папок work и tmp в вашей установке jboss. Остановите JBoss до и запустите его после. Это поможет.

...