2013-11-26 3 views
0

Я работаю над проектом, где моя задача - свернуть JVM, выполнив программу. В JVM у меня Tomcat работает с развернутым в нем веб-приложением. Как только JVM выйдет из строя, я получаю сообщение «Страница не найдена. Ошибка сервера может быть недоступна» в браузере для веб-приложения, как в JVM, Tomcat также остановился.Уведомление о сбое JVM как всплывающее сообщение?

Теперь я хочу создать всплывающее окно, как только JVM выйдет из строя. Всплывающее окно скажет: «JVM разбился!». Не могли бы вы рассказать мне, как написать такой код?

Заранее благодарен!

ответ

0

Методы UnInvoked finalize() следует вызывать на выходе jvm. Вам необходимо переопределить метод finalize в одном из ваших классов и сохранить его ссылку до тех пор, пока jvm не будет в живых. При сбое JVM этот метод будет вызван. Но это не может быть перенесено в браузер, так как ваши контейнеровочные потоки будут убиты после сбоя JVM.

+0

Для меня, по крайней мере, «JVM crash» означает, что JVM вышел из строя ненормально, например, из-за неправильного доступа к памяти в собственном коде (либо собственный код JVM, либо код третьей стороны, вызываемый через JNI). В этом случае никакие финализаторы не будут запущены. И даже в случае обычного выхода JVM, такого как вызов System.exit(), финализаторы запускаются только в том случае, если включен Runtime.runFinalizersOnExit() - он по умолчанию отключен, и, как утверждает его собственная документация, он устарел и включение его не рекомендуется, так как это может привести к зависанию во время выхода JVM. –

0

Возможно, вам нужна другая служба, контролирующая статус JVM.

Когда JVM разбился или не может ответить, сервер уведомляет вашу страницу и сообщения.

Смежные вопросы