【问题标题】:When OSGi ServiceTracker modifiedService() method is actually invoked by the Framework?框架何时实际调用 OSGi ServiceTracker modifiedService() 方法?
【发布时间】:2015-05-13 14:56:13
【问题描述】:

我正在使用 OSGi 服务跟踪器,我注意到方法 ServiceTracker.modifiedService(...) 从未被调用过。

我尝试使用不同的属性注册服务两次,取消注册,等等...,但该方法从未被框架调用。

任何人都知道 OSGi 框架在什么情况下认为服务“已修改”?

我使用 OSGi 服务跟踪器的方式非常标准。

this.serviceTracker = new CustomServiceTracker<S>(context, clazz, null);
this.serviceTracker.open();

我有一个扩展 OSGi ServiceTracker 并覆盖以下方法的类:

  • 修改服务()
  • removedService()
  • 添加服务()

谢谢

【问题讨论】:

    标签: java osgi


    【解决方案1】:

    修改服务属性时调用modifiedService方法。

    【讨论】:

    • 你的意思是修改同一个ServiceReference的时候?怎么可能做到? AFAIK 唯一的方法是注册具有不同属性的相同服务,但它不起作用
    • 好的,所以我可以从 ServiceRegistration 更新服务属性,这将触发 modifiedService() 回调。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多