我们可以以编程方式重新启动j2ee应用程序吗?

时间:2020-03-05 18:48:26  来源:igfitidea点击:

有谁知道是否可以(从应用程序)重新启动J2EE应用程序?如果是这样,怎么办?

如果可能,我希望能够以与应用服务器无关的方式进行操作。

该应用程序将在许多不同的应用程序服务器上运行-基本上无论客户端喜欢什么。

如果不可能以与应用程序服务器无关的方式执行此操作,那么出于我的目的,这可能真的不值得。我总是可以只显示一条消息,通知用户他们需要手动重新启动应用程序。

解决方案

回答

大多数应用程序服务器都提供JMX接口,因此我们可以调用该接口。

回答

我建议我们不太可能找到与appserver无关的方法。而且,尽管我不假装不了解要求,但我可能会质疑一种要求应用程序自行重启的设计,而不是正在部署新版本的安装程序。最后,我建议出于任何不平凡的目的,"任何"应用服务器将无法正常工作。我们应该具有发行说明中记录的受支持的应用程序服务器和版本的列表,以便我们可以对所有这些服务器和版本进行测试,而不必担心在不符合要求的服务器/版本上支持客户端。根据经验,例如,Apache Tomcat和BEA WebLogic之间总是存在细微的差异,并且这些差异通常是无法记录的并且很难确定,直到遇到它们为止。

回答

我建议使用servicewrapper来管理应用程序服务器,然后使用其api方法来请求重新启动服务。将涉及一些配置,并且很难知道它是否可以在特殊环境中工作,但这就是我所知道的唯一一种甚至可以合理地跨服务器兼容的解决方案。