java - 是否可以在不重新启动应用程序的情况下重新加载 WebSphere Application Server (WAS) 中的共享库?

标签 java shared-libraries websphere

我有一个使用共享库的 WebSphere 应用程序。每当对共享库路径中的任何 jar 进行更新时,使用它的应用程序都需要重新启动才能获取最新更改。是否可以使 WAS 应用程序重新加载共享库而无需重新启动?

我使用的是传统的 WAS 8.5.5.16。

最佳答案

简短回答:否。

长答案:由于技术原因您无法这样做。 Java 类加载器通常不支持重新创建它们已经定义的 Class 对象 - 一旦定义了一个类,它就被定义了,这就是类加载器的生命周期(loadClass 的第一步是“findLoadedClass”,它搜索对于您正在加载的类的现有版本)。为了让 Java 同意加载 Class 对象的新实例,您需要创建一个全新的类加载器,并且在 Java EE(或者至少是 WAS)设置中,这需要重新启动应用程序。

从你的问题来看,我相信你只是将一个普通的共享库与你的应用程序关联起来,所以这不一定适用,但我会注意到,如果你使用一个独立的共享库(它有自己的类加载器) )或在服务器上配置的共享库加载器,即使重新启动应用程序也是不够的,因为这些库加载器是与服务器一起创建的,而不是与应用程序一起创建的,因此它们需要重新启动服务器才能获取更改。

关于java - 是否可以在不重新启动应用程序的情况下重新加载 WebSphere Application Server (WAS) 中的共享库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61412377/

相关文章:

java - WebSphere 如何选择文件夹中的类加载顺序 (WEB-INF/lib)

java - 配置 Hibernate 以从连接池获取新连接

java - 是否可以将网络WebSphere服务器添加到Eclipse?

java - 如何在位置感知应用中多次使用 Google Places API?

java - 接口(interface)的多态性是否合法,就像抽象类的多态性是合法的一样吗?

.net - TFS 项目可以相互引用吗?

ubuntu - 在 Ubuntu 上安装 ViennaCL

无法编译链接动态库

java - Eclipse 不显示 Java 9 选项

java - HtmlUnit WebClient 超时