访问其他osgi包中的静态资源?

时间:2012-07-27 06:46:54

标签: java eclipse-plugin osgi bundle equinox

我创建了两个OSGi包B1和B2(Equinox)。

在捆绑包B1中,我在根目录下有一个目录WebContent/WEB-INF/WEB.xml

source.. = src/
bin.includes = META-INF/,\.,\WebContent

在捆绑包B2的清单中,我添加了捆绑包B1作为依赖关系。我想制作WebContent并且它的子树可见于B2。

注:

  1. 我无法在B1的清单中导出WebContent,因为它不在src文件夹中。
  2. 如果我将WebContent/WEB-INF放在src文件夹中,我仍然无法将其导出为WebContent/WEB-INF,因为它不是有效的包名。

1 个答案:

答案 0 :(得分:3)

你能获得B1套装的参考吗?如果是这样,我认为您可以使用getEntry。 E.g。

Bundle b1 = /* get bundle here */
URL urlToWebXml = b1.getEntry("WebContent/WEB-INF/WEB.xml");

'get bundle here'可以通过你的B2 Bundle激活器访问Bundle,它可能存储BundleContext。