是否可以从OSGi框架获取所有服务,而无需使用服务引用?

时间:2016-04-13 14:34:27

标签: java lua osgi

我正在编写一个lua脚本,它应该从OSGi框架获得一个基准测试服务。我已经设法达到了我有一个userdata类型的对象,它对应于一个ServiceReference;问题是我无法使用userdata对象从Bundle Context中使用getService。 它会产生以下错误:

预计

org.osgi.framework.ServiceReference,获得userdata

考虑到这一点,我想我可以通过直接从框架中获取所有服务来绕过它,然后以某种方式迭代它们。这可能吗?通常,在获取服务时,引用是OSGi中必须的。

或者将userdata对象传递给getService(reference)方法的方法。

我的代码是:

refs = osgilib.bc():getServiceReferences("CLASSNAME", nil);

if (type(elem) == "table") then

print(pairs(refs));

for ref in refs do 

collector = osgilib.bc().getService(ref); //The code crashes here

print(collector.getName());

end

else

print(refs);

collector = osgilib.bc():getService(refs); //The code crashes here

print(collector);

end

bc是来自OSGi Java框架的Bundle Context。 谢谢:))

0 个答案:

没有答案