Можно ли перезагрузить общие библиотеки в WebSphere Application Server (WAS) без перезапуска приложения? - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть приложение WebSphere, которое использует общие библиотеки. Всякий раз, когда выполняется обновление любого jar-файла в пути к разделяемым библиотекам, приложение, использующее его, должно быть перезапущено для получения последних изменений. Можно ли заставить приложение WAS перезагружать разделяемые библиотеки без перезапуска?

Я использую традиционный WAS 8.5.5.16.

Ответы [ 2 ]

2 голосов
/ 24 апреля 2020

Краткий ответ: Нет.

Длинный ответ: Есть техническая причина, почему вы не можете этого сделать. Java загрузчики классов обычно не поддерживают воссоздание объектов Class, которые они уже определили - как только вы определите класс, он определен, и это на всю жизнь загрузчика классов (первый шаг в loadClass - это «findLoadedClass», который ищет существующую версию класса, который вы загружаете). Чтобы Java согласился загрузить новый экземпляр объекта Class, вам необходимо создать совершенно новый загрузчик классов и в параметре Java EE (или, по крайней мере, WAS), который требует перезапуска приложения. . 1003 его собственный загрузчик классов) или загрузчик общей библиотеки, настроенный на сервере, даже перезапуска приложения недостаточно, поскольку эти загрузчики создаются на сервере, а не в приложениях, поэтому для получения изменений требуется перезапуск сервера.

0 голосов
/ 27 апреля 2020

Нет. Они загружаются только один раз при запуске сервера.

...