OSGI和克隆服务

OSGI和克隆服务,osgi,Osgi,我需要从一个bundle注册多个服务,我想我不能使用ServiceFactory,因为我只有一个bundle使用服务 换句话说,我有一个包,它代表一个物理设备(例如温度传感器),因为我有多个物理设备(例如10个温度传感器,每个传感器都有一个唯一的ID),所以我需要从同一个包中获得多个(10)我的服务实例,如何才能做到这一点?只需重复调用context.registerService(),即可注册该服务的多个实例。每个注册可以携带一组不同的属性,例如: Properties props1 = ne

我需要从一个bundle注册多个服务,我想我不能使用ServiceFactory,因为我只有一个bundle使用服务
换句话说,我有一个包,它代表一个物理设备(例如温度传感器),因为我有多个物理设备(例如10个温度传感器,每个传感器都有一个唯一的ID),所以我需要从同一个包中获得多个(10)我的服务实例,如何才能做到这一点?

只需重复调用
context.registerService()
,即可注册该服务的多个实例。每个注册可以携带一组不同的属性,例如:

Properties props1 = new Properties();
props1.put("my_id", "ID1");
context.registerService(Foo.class.getName(), new FooImpl(), props1);
// ...
Properties props2 = new Properties();
props2.put("my_id", "ID2");
context.registerService(Foo.class.getName(), new FooImpl(), props2);
// ...

(请注意一个可能会让您省去一些困惑的术语。捆绑包不将自己注册为服务。它们创建对象并将其注册为服务。捆绑包是部署单元或可执行代码的容器。捆绑包可以向许多服务注册零,和/或使用其他捆绑包注册的服务。)

您需要澄清您的问题并添加更多细节。例如,你所说的“克隆”服务是什么意思?我的意思是多次注册同一服务,例如,我有一个代表一个物理设备的捆绑包,因为我有多个物理设备,所以我需要有同一服务的多个实例。。如果我重新表述我的问题,我有十个温度传感器,每个都有一个唯一的id,我如何注册代表温度传感器的捆绑包的10个实例谢谢,我现在将尝试回答这个问题。您最好编辑原始问题以添加此附加细节。