Вопрос по java, dynamic-loading –  Метод clearAssertionStatus () класса ClassLoader, а не сборщик мусора. Это может быть?

4

у серверное приложение, которое использует внешние модули. Я хотел бы сделать их обновляемыми без перезагрузки сервера. Как мне это сделать? я обнаружилOSGi но это выглядит очень сложным и большим для моей задачи.

Простые * .jar файлы в порядке, но, как только они загружены, я полагаю, я не могу выгрузить их из ВМ и заменить на другую версию на лету.

Какой подход вы можете предложить?

Другой вариант - использовать Apache Felix / Karaf. OSGi изначально была разработана для встраиваемых систем и не так сложна, как раньше. Peter Lawrey
OSGi это путь. Весна может упростить работу Boris Pavlović

Ваш Ответ

1   ответ
4

что OSGi - это именно то, что вы просите. Это может быть сложно, но есть способы справиться с этим. Некоторая сложность может быть уменьшена с помощью SpringDM или чего-то подобного для решения стандартных задач регистрации и использования сервисов во время выполнения. Регистрация служб, управляемая аннотациями, и внедрение зависимостей действительно сокращают объем кода, который необходимо написать.

Другой способ уменьшить сложность - развернуть основную часть вашего приложения в одном пакете и развертывать только те части, которые должны быть модульными, в свои собственные пакеты. Это снижает вероятность регистрации и использования служб из других пакетов во время выполнения, а также снижает сложность развертывания. Код, работающий в пакете, может использовать другой код в том же пакете, как и в стандартном приложении Java - нет необходимости взаимодействовать со средой выполнения OSGi. Противоположностью этого подхода является разбиение вашего приложения на множество отдельных пакетов, которые экспортируют четко определенные сервисы в другие пакеты в системе. Хотя это очень модульный подход, он сопряжен с дополнительной сложностью управления всеми этими пакетами и большим взаимодействием со средой выполнения OSGi.

Я бы посоветовал взглянуть на книгу «OSGi в действии», чтобы получить представление о проблемах и ознакомиться с приличными образцами.

Проблема в том, что это кажется слишком сложным. То, что я хочу, это простой способ, например LoadLibrary / FreeLibrary в Windows. Не буквально конечно;) Vladislav Rastrusny
для быстрого просмотра, перед покупкой ....bit.ly/OSGi-book tsenapathy

Похожие вопросы