我写了一个框架(我们称之为 A),它依赖于 jdbc 驱动程序和数据源,并使用反射加载类。
它使用 3 个带参数的 Class.Forname 和 Thread.currentThread().getContextClassLoader()
现在,我想在 OSGI 包中使用这个框架 A.jar。我为 A.jar 生成了 Manifest 文件,正确添加了导入和导出。
导入和导出不起作用,因为我正在使用反射加载类,所以我使用了 DynamicImport-Package。
但是,只有当我在使用 A.jar 的 Bundle 中包含 DynamicImport-Package 时它才有效,如果我在 A.jar 中包含 DynamicImport-Package 它不起作用
我不能让每个使用 A.jar 更改其清单文件并包含 DynamicImport 的包。
你能帮我解决这个问题吗?
PS:我无法更改为静态加载类。我通过省略某些细节来简化问题,例如 A.jar 实际上使用 Oracle UCP,它使用反射来加载数据源。