首页 文章

从OSGi片段包访问服务

提问于
浏览
1

在我的项目中,有一个OSGi包,它将一个接口 com.xyx.EventProvider 暴露为一个充满效果的服务 .

还有另一个第三方包 org.eclipse.equinox.http.jetty ,我已经附加了一个片段包 com.xyz.jetty.customizer .

此片段包需要访问通过接口 com.xyx.EventProvider 公开的服务 .

问题是片段包没有Activators,因此它没有引用BundleContext,因此它无法访问任何服务 .

OSGi中有没有办法实现这一目标?

1 回答

  • 1

    我总是讨厌建议使用 FrameworkUtil.getBundle().getBundleContext() ,因为它是如此的黑客,但在这种情况下,它似乎是唯一的解决方案 .

    您将需要传入由主机包定义的类,因为片段不能具有BundleContext(即 getBundleContext 调用将返回null) .

相关问题