Кто-либо знает, возможно ли перезапустить приложение J2EE (из приложения)? Если так, как?
Я хотел бы смочь сделать это агностическим сервером приложений способом, если это возможно.
Приложение будет запущено на многих различных серверах приложений - в основном независимо от того, что клиент предпочитает.
Если не возможно сделать это агностическим сервером приложений способом, то это, вероятно, не действительно стоит делать в моих целях. Я могу всегда просто отображать сообщение, сообщающее пользователю, что они должны будут перезапустить приложение вручную.
Я предположил бы, что Вы вряд ли найдете appserver агностический путь. И в то время как я не симулирую знать Ваши требования, я мог бы подвергнуть сомнению дизайн, который требует, чтобы приложение перезапустило себя кроме установщика, который развертывает новую версию. Наконец, я предположил бы, что для любой нетривиальной цели "любой" appserver не будет работать. У Вас должен быть список серверов поддерживаемого приложения и версий, зарегистрированных в Вашу информацию о версии, таким образом, Вы можете протестировать на всех тех и не должны волноваться о поддержке клиентов на несоответствующем сервере/версии. На основе опыта всегда существуют тонкие различия между, например, Tomcat Apache и BEA WebLogic, и этими различиями часто является недокумент и трудно определить, пока Вы не сталкиваетесь с ними.
Я предложил бы использовать servicewrapper, чтобы управлять сервером приложений и затем использовать его методы API для запроса перезапуска сервиса. Была бы некоторая включенная конфигурация и его твердое, чтобы знать, будет ли это работать в Вашей particuar среде, но это - единственное решение, которое я знаю, из которых даже довольно межсерверный совместимый.
Большинство серверов приложений обеспечивает интерфейс JMX, таким образом, Вы могли вызвать это.