Я бы хотел добавить систему плагинов в мое веб-приложение Tomcat.Для эксперимента я добавил небольшой Plugin
интерфейс в веб-приложение и реализовал его в MyPlugin
, который не является частью развернутой войны.Веб-приложение читает файл конфигурации и использует отражение для инициализации плагинов.
Все работает, как и ожидалось, если я скопирую банку, содержащую MyPlugin
, в webapps/mywebapp/WEB-INF/lib
.Однако, если я сделаю это, то плагин будет перезаписан при следующем развертывании.
Я попытался переместить банку в отдельный каталог за пределами распакованной войны и затем указал shared.loader
в conf/catalina.properties
там, но теперьЯ получаю исключение, что MyPlugin
не может быть приведен к Plugin
.Очевидно, интерфейс и класс загружаются с использованием разных загрузчиков классов.
Какой лучший способ решить эту проблему?