我确实有一个耳朵,里面有一个战争。在 WEB-INF/lib 文件夹中的这个 WAR 中,我确实有一个 lib jar 列表。其中一些 lib jar 是自己的代码和一种插件。该插件通过新功能扩展了 WAR。使用 CDI 功能自动检测插件。
这么长时间一切正常。但是我花在这个插件上的工作越多,我就越想为多个插件提供一些通用代码,这些代码不是普通 EAR/WAR 通用代码的一部分。我也想有这个插件的不同版本(这个通用插件代码的不同版本)。
我的想法是,为每个插件都有一个特定的类加载器。这个类加载器应该首先尝试从这个插件 JAR 加载。如果在此 JAR 中找不到类/资源,则请求 EAR 的正常类加载器。
这个想法有什么解决方案吗?我可以为一个 JAR 定义一个特殊的类加载器吗?还是这个想法不好,你有更好的建议?
环境:
- JBoss 7.1.1
- JDK 1.6