访问另一个 osgi 捆绑包中的资源?
我使用eclipse Plug-in项目向导(使用eclipse Helios)创建了两个OSGI捆绑包A和B。
在捆绑包 B 的清单文件中,我已将捆绑包 A 添加为依赖项。此外,我已经在A中导出了包,因此它们对于B是可见的。我在捆绑包 A 中还有一个 .properties 文件,我想让它对捆绑包 B 可见。在捆绑包 A 的 build.properties 窗格中,我指定了:
source.. = src/
bin.includes = META-INF/,\
.,\
bundle_A.properties
现在在捆绑包 B 中,我尝试使用以下方式加载 .properties 文件:
private Properties loadProperties() {
Properties properties = new Properties();
InputStream istream = this.getClass().getClassLoader().getResourceAsStream(
"bundle_A.properties");
try {
properties.load(istream);
} catch (IOException e) {
logger.error("Properties file not found!", e);
}
return properties;
}
但这给出了一个空指针异常(在类路径上找不到该文件)。
是否可以从包 A 导出资源(就像导出包时一样)或以其他方式从 B 访问 A 中的文件(从包 B 访问包 A 的类装入器)?