【问题标题】:ServiceTracker | Should we release service in addingService method in case of exception?服务跟踪器 |如果出现异常,我们应该在addingService方法中释放服务吗?
【发布时间】:2021-06-13 07:57:24
【问题描述】:

我创建了一个带有 null ServiceTrackerCustomizerServiceTracker,并覆盖了 addedService 和 removedService 方法。

考虑一下这段代码 sn-p 用于 addService 方法。

public T addingService(ServiceReference<T> reference) {
    T service = super.addingService(reference);
    try {
        // some code which may throw exception. 
    } catch (Exception ex) {
        // Let's not track if exception occurred.
        service = null;
        this.context.ungetService(reference);
    }
    return service;
}

那么,如果出现异常,是否可以急切地释放服务?或者我们可以省略它,OSGi 框架会负责稍后发布服务?

请指教。

【问题讨论】:

    标签: osgi apache-felix


    【解决方案1】:

    您应该取消问题中显示的服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-07
      • 2018-12-31
      • 1970-01-01
      • 2015-08-12
      • 2011-08-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多