一尘不染

使用插件扩展Java Web应用程序

tomcat

我的这个Web应用程序已经变得一团糟。

我想将其拆分为一个常见的“框架”部分(仍然包括网页和图像之类的网络内容)和几个添加了额外功能和屏幕的模块。我希望这种重构也可以用作第三方扩展的插件系统。

所有模块都必须是单独的部署单元,最好是war或jar文件。

我试图仅制作几个常规的war文件,但是Tomcat使这些war文件(根据servlet规范)保持彼此完全独立,例如,它们无法共享其类。

我需要插件才能看到“主”类路径。

我需要主应用程序对插件进行一些控制,例如能够列出它们并设置其配置。

我想在插件本身(除非它们指定依赖项)和可能在同一Tomcat上运行的任何其他不相关的Web应用程序之间保持完全隔离。

我希望它们植根于“主要”应用程序URL前缀下,但这不是必需的。

我想使用Tomcat(需要与太多的人进行大规模的架构更改),但也希望了解EJB或OSGi世界中是否存在一个干净的解决方案。


阅读 363

收藏
2020-06-16

共1个答案

一尘不染

我一直在考虑使用OSGi解决您正在描述的相同问题的想法。特别是我正在考虑使用Spring动态模块

2020-06-16