Можете ли вы программно перезапустить приложение j2ee?

StackOverflow https://stackoverflow.com/questions/46568

  •  09-06-2019
  •  | 
  •  

Вопрос

Кто-нибудь знает, можно ли перезапустить приложение J2EE (из приложения)?Если да, то как?

Я хотел бы иметь возможность сделать это независимо от сервера приложений, если это возможно.

Приложение будет запускаться на множестве разных серверов приложений — по сути, на том, что предпочитает клиент.

Если это невозможно сделать независимо от сервера приложений, то, вероятно, для моих целей это не стоит делать.Я всегда могу просто отобразить сообщение, информирующее пользователя о том, что ему нужно будет перезапустить приложение вручную.

Это было полезно?

Решение

Я бы предположил, что вы вряд ли найдете способ, независимый от сервера приложений.И хотя я не претендую на знание ваших требований, я могу поставить под сомнение дизайн, который требует перезапуска приложения, кроме установщика, развертывающего новую версию.Наконец, я бы предположил, что для каких-либо нетривиальных целей «любой» сервер приложений не подойдет.У вас должен быть список поддерживаемых серверов и версий приложений, задокументированный в примечаниях к выпуску, чтобы вы могли протестировать их все и не беспокоиться о поддержке клиентов на несоответствующем сервере/версии.По опыту, между, например, Apache Tomcat и BEA WebLogic всегда есть тонкие различия, и эти различия часто недокументированы и их трудно определить, пока вы не столкнетесь с ними.

Другие советы

Большинство серверов приложений предоставляют интерфейс JMX, поэтому вы можете его вызвать.

Я бы предложил использовать servicewrapper для управления сервером приложений, а затем использовать его методы API для запроса перезапуска службы.Это потребует некоторой настройки, и трудно понять, будет ли это работать в вашей конкретной среде, но это единственное известное мне решение, которое хотя бы в достаточной степени совместимо с несколькими серверами.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top