Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Как перезапустить класс с методом main?


Автор: nitzshe 24.11.2008, 14:21
Добрый день.

Есть stand alone консольное приложение, которое коннектится к JBoss JMS server. 
При запуске приложения считывается log4j.properties откуда загружается класс JMSAppender для логирования.
Так вот, если во время работы этого приложения перезапустить JBoss, то приложение не коннектится больше
к серверу.

Моя задача была изменить приложение так, чтобы после перезапуска JBoss приложение работало по прежнему.
Я повесил тредом листенер, который запускается при падении соединения и при восстановлении соединения 
удаляет все старые коннекшены и создает заново. То есть задача решена, но! JMSAppender падает при остановке 
JBoss и при перезапуске главного класса не запускается, так как грузится еще до инициализации этого класса при первом запуске.

Возможно ли как-то решить эту проблему? Копаться в сорцах log4j не хочется, и времени нет.

Может можно как-то повторить полностью загрузку класса с предшествующим считыванием проперти файла для
log4j и его инициализацией?

Автор: LSD 24.11.2008, 14:40
Цитата(nitzshe @  24.11.2008,  14:21 Найти цитируемый пост)
Может можно как-то повторить полностью загрузку класса с предшествующим считыванием проперти файла для log4j и его инициализацией? 

Для этого придётся использовать отдельный ClassLoader.

Автор: nitzshe 24.11.2008, 22:02
Мне кажется это слишком усложнит код

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)