Pergunta

Alguém sabe se é possível reiniciar uma aplicação J2EE (a partir da aplicação)?Se sim, como?

Eu gostaria de poder fazer isso de maneira independente do servidor de aplicativos, se for possível.

O aplicativo será executado em muitos servidores de aplicativos diferentes – basicamente o que o cliente preferir.

Se não for possível fazer isso de maneira independente do servidor de aplicativos, provavelmente não vale a pena fazer isso para meus propósitos.Sempre posso exibir uma mensagem informando ao usuário que ele precisará reiniciar o aplicativo manualmente.

Foi útil?

Solução

Eu sugeriria que é improvável que você encontre uma maneira agnóstica de servidor de aplicativos.E embora eu não pretenda conhecer seus requisitos, posso questionar um design que exige que o aplicativo seja reiniciado, diferente de um instalador que está implantando uma nova versão.Finalmente, eu sugeriria que, para qualquer propósito não trivial, "qualquer" appserver não funcionará.Você deve ter uma lista de servidores e versões de aplicativos suportados, documentados em suas notas de lançamento, para que possa testar todos eles e não precise se preocupar em oferecer suporte a clientes em um servidor/versão não conforme.Por experiência própria, sempre há diferenças sutis entre, por exemplo, Apache Tomcat e BEA WebLogic, e essas diferenças geralmente são indocumentadas e difíceis de determinar até que você as encontre.

Outras dicas

A maioria dos servidores de aplicativos fornece uma interface JMX, então você pode invocá-la.

Eu sugiro usar o servicewrapper para gerenciar o servidor de aplicativos e, em seguida, usar seus métodos de API para solicitar a reinicialização do serviço.Haveria alguma configuração envolvida e é difícil saber se isso funcionaria em seu ambiente específico, mas essa é a única solução que conheço que é razoavelmente compatível entre servidores.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top