我正在编写一个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。 谢谢:))