【发布时间】:2013-07-23 20:18:20
【问题描述】:
我正在尝试访问 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();
但老实说,我真的不明白这个捆绑包的上下文。 它到底是什么,它可以和引用类是同一个类吗?
手册规定如下: context - 完成跟踪的 BundleContext。 ...但这并没有让我更清楚。
谢谢!
【问题讨论】: