Как реализовать механизм расширений в appserver? - PullRequest
0 голосов
/ 03 марта 2010

Я разрабатываю сервлет, который должен работать 24/7. И я хочу создать механизм некоторых расширений: размещение нового jar-файла в classpath должно быть обнаружено главным сервлетом, а некоторый класс должен быть загружен (без перезапуска appserver).

Назначение: главный сервлет получает события и перенаправляет данные для обработки в загруженные классы (расширения). Расширения реализуют некоторый интерфейс (например, IMyExtension).

Может быть, есть способ найти все классы, реализующие определенный интерфейс? Или что ты предлагаешь?

1 Ответ

0 голосов
/ 03 марта 2010

Хорошим вариантом для таких систем является OSGi. Посмотрите на http://www.eclipse.org/equinox/ или http://www.springsource.com/products/dmserver для серверов приложений. OSGi позволяет динамически развертывать и включать модули без выключения сервера.

Как правило, вам не нужно находить все реализации. Расширения должны регистрироваться при запуске и отменяться при остановке.

...