如何获取ServiceReference类型的名称?

时间:2013-10-01 16:43:50

标签: osgi

我有一个ServiceReference实例,我希望获得它注册的类型的名称。

例如,该服务可能是WordService,由WordServiceImpl实施。我想检索"WordService"ServiceReference.toString()给了我一些接近我想要的东西("[org.example.WordService]")。

但是,我假设toString()格式在运行时不是标准格式。另外,我不想检查实现类型的接口来手动查找接口,因为在多个接口的情况下我仍然需要随机选择正确的接口。

提前致谢!

1 个答案:

答案 0 :(得分:3)

傻,但实际上我在发布后几乎立刻就知道了。

通过服务引用检索objectClass属性的值:

String[] objectClass = (String[]) reference.getProperty("objectClass");

如您所见,这是String的数组。在我的测试用例中,第一个也是唯一一个条目包含提供的服务接口(org.example.WordService)。我假设如果实现通过多个接口提供服务,则会出现多个条目。

我假设这是标准的OSGi ......

相关问题