我试图访问 java 项目中的 osgi ds。我在网上找到了一个这样的例子:
BundleContext context = FrameworkUtil.getBundle(this.getClass()).getBundleContext();
ServiceReference serviceReference = context.getServiceReference(MyClass.class.getName());
MyClass blah = (MyClass) new ServiceTracker(context, serviceReference, null).getService();
blah.doStuff();
这里的问题是,如果我在 java 类中运行它,“context”变量为空。我想那可能是因为它不在 osgi 包中。
我尝试改变事物,如果我像这样改变它,它会起作用:
BundleContext context = FrameworkUtil.getBundle(Myclass.class).getBundleContext();
但老实说,我真的不明白这个捆绑上下文。它到底是什么,它可以是与参考类相同的类吗?
Manual 声明如下: context - 完成跟踪的 BundleContext。...但这并没有让我更清楚。
谢谢!