如何在系统包上使用BundleWiring.findEntries()?

时间:2016-05-05 16:19:44

标签: java osgi

我试图通过使用BundleWiring的findEntries()方法在所有OSGi模块中找到一组包名。对于所有其他模块,我只需运行

bundleWiring.findEntries("/" + packageName, "*.class", 2)

获取该包中所有类的URL。

问题是这种方法不适用于OSGi System Bundle(bundle 0)。通过类加载器,我能够看到我想要的类是在tomcat / webapps / ROOT / WEB-INF / lib / x.jar中,但是如果我只将System Bundle作为一个系统,我如何才能找到这些类的路径捆绑?

包将在system.packages.extra.mf

中导出

1 个答案:

答案 0 :(得分:1)

这是不可能的,因为系统包只是OSGi的“外部”。您可以使用任意ClassLoader来加载OSGi Framework,而ClassLoader没有办法迭代他们知道的包或类。

相关问题