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

Thi*_*ilo 6 java tomcat servlets modularity

我有这个Web应用程序已经发展到一个难以管理的混乱.

我想将它拆分为一个通用的"框架"部分(仍包括网页内容,如页面和图像)和几个增加额外功能和屏幕的模块.我希望这种重构也可用作第三方扩展的插件系统.

所有模块都需要是独立的部署单元,理想情况下是war或jar文件.

我试图制作几个常规战争文件,但是Tomcat保持(根据servlet规范)这些war文件完全彼此分开,因此他们不能共享他们的类,例如.

我需要插件才能看到"主"类路径.

我需要主应用程序来控制插件,例如能够列出它们,并设置它们的配置.

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

我希望它们根植于"主"应用程序URL前缀,但这不是必需的.

我想使用Tomcat(大型架构更改需要与太多人协调),还要听到EJB或OSGi世界中的干净解决方案(如果有).

Bri*_*ews 4

我一直在考虑使用 OSGi 来解决您所描述的相同问题。我特别关注使用Spring Dynamic Modules