我想向我的Tomcat Web应用程序添加一个插件系统。为了进行实验,我在Web应用程序中添加了一个小型Plugin
界面,并在MyPlugin
中实现了该界面,这不是部署战争的一部分。该Web应用程序读取配置文件,并使用反射来初始化插件。
如果将包含MyPlugin
的jar复制到webapps/mywebapp/WEB-INF/lib
,一切都会按预期进行。但是,如果执行此操作,则该插件将在下次部署时被覆盖。
我尝试将罐子移到未打包装的战争之外的单独目录中,然后将shared.loader
指向conf/catalina.properties
,但现在我遇到一个例外,无法将MyPlugin
强制转换为{ {1}}。显然,接口和类是使用不同的类加载器加载的。
解决此问题的最佳方法是什么?