我确实有一个带有一个WAR的EAR。在WEB-INF / lib文件夹的这个WAR中,我有一个lib jar列表。一些lib jar是自己的代码和一种插件。此插件通过新功能扩展WAR。使用CDI功能自动检测插件。
所有工作都很好。 但是我花在这个插件上的工作越多,我就越想要为多个插件提供一些通用代码,这些代码不属于普通的EAR / WAR公共代码。此外,我想拥有此插件的不同版本(使用此常见插件代码的不同版本)。
我的想法是,为每个插件安装一个特定的类加载器。这个类加载器应该首先尝试从这个插件JAR加载。如果在此JAR中找不到类/资源,则要求EAR的正常类加载器。
这个想法有什么解决方案吗?我可以为一个JAR定义一个特殊的类加载器吗? 或者这个想法很糟糕,你有更好的建议吗?
环境: