你能以编程方式重启j2ee应用程序吗?

时间:2008-09-05 19:00:09

标签: java java-ee

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

如果可能的话,我希望能够以app-server无关的方式做到这一点。

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

如果无法以app-server-agnostic方式执行此操作,那么可能不值得为我的目的而做。我总是只能显示一条消息,通知用户他们需要手动重启应用程序。

3 个答案:

答案 0 :(得分:6)

我建议您不太可能找到与appserver无关的方式。虽然我不假装知道您的需求,但我可能会质疑一个需要应用程序重新启动的设计,而不是部署新版本的安装程序。最后,我建议,对于任何重要的目的,“任何”appserver都不会起作用。您应该有一份受支持的应用服务器和版本的列表,记录在发行说明中,因此您可以对所有这些进行测试,而不必担心在不符合要求的服务器/版本上支持客户端。根据经验,例如Apache Tomcat和BEA WebLogic之间总会存在细微差别,这些差异通常是无法识别的,在您遇到它们之前很难确定。

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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