无法为 OSGI 容器内的依赖项项目加载属性文件

Unable to load properties file for a dependency project inside OSGI container

请完成下面给出的场景

当我通过在任一项目中创建虚拟 main 方法进行测试时,这工作正常。

但是当我将此项目部署到 OSGI 容器(JBOSS Fuse)时,它无法正常工作。主要原因是,在 OSGI 容器中,PropertiesUtil.class.getLoader() 指的是对应于 abc-service 项目的包,我可以从该项目读取任何文件,但不能从 abc-common 项目。

所以问题是,如何更改我的代码,使其可以从 OSGI 容器中的 abc-common 项目的 class 路径读取属性.

备注 我正在将我的项目部署为 karaf 功能,它列出了 abc-serviceabc-common 包作为依赖项。

此外,我尝试了不同的变体,例如

Thread.currentThread().getContextClassLoader().getResourceAsStream("myConfig.properties")

FrameworkUtil.getBundle(PropertiesUtil.class).getEntry("myConfig.properties.")

但其中 none 确实有效

在 OSGi 中,您需要使用包的导入|导出来允许从其他包加载资源。将属性文件放入您从该包中导出的包中。然后从另一个包中导入该包。然后您应该能够从类路径加载资源。