2

我有一个Java EE在 2 节点集群上运行的WAS 7.0.Web 应用程序这个 Web 应用程序有多个 jar 文件,其中每个 jar 文件包含一个实用程序列表。将来我可能会向这个 Web 应用程序添加新的jar 文件。当我们向它添加新的 jars 时,我们不希望这个 Web 应用程序停机。

是否可以在不重新启动 Web 应用程序的情况下将新的 jar 文件添加到 Web 应用程序?更改会立即生效吗?

如何更新已由加载的类加载的现有 jar 文件?是否可以在不重新启动的情况下做到这一点?

我读到了Hot deploymentWAS 中的一些东西。他们已经提到,Hot Deployment不适用于 Solaris 和 HP-UX 操作系统。

您能否建议解决此问题的最佳方法?

4

1 回答 1

2

是否可以在不重新启动 Web 应用程序的情况下将新的 jar 文件添加到 Web 应用程序?更改会立即生效吗?

不,如果不重新启动应用程序,就不可能将新的 JAR 添加到类加载器。即使您创建一个空的 JAR 并稍后替换它,更改也无法在 0 中断时生效:至少模块仍会重新启动。

如何更新已由加载的类加载的现有 jar 文件?是否可以在不重新启动的情况下做到这一点?

你不能,这是不可能的。

我读到了关于 WAS 中称为热部署的内容。他们提到,热部署不适用于 Solaris 和 HP-UX 操作系统。

热部署确实允许在停机时间为 0 的情况下替换类(但不是整个 JAR)。

其他选项:

  • 使用路由技术(HTTP 代理,WVE),并波纹重启应用程序(即一次在一个集群成员上重新启动应用程序,同时将中间流量路由到另一台服务器)。
  • 使用类似 JRebel 的东西。我的理解是它主要针对开发环境,但它也可能支持生产。
于 2012-08-01T12:49:06.083 回答