【问题标题】:Issue with service dynamism and blueprint服务活力和蓝图问题
【发布时间】:2016-12-31 19:45:41
【问题描述】:

我有一个非蓝图包,它通过声明式服务注释提供服务。

我有另一个使用蓝图的捆绑包,其中包含此服务的可选引用,然后将此引用注入许多已声明的 bean。

在 Karaf 容器中启动,服务被注册,蓝图包可以访问它并按预期使用。服务提供包的配置可以更新,解除绑定,重新绑定到蓝图包,完美。

但是,当服务提供包重新启动或更新时,服务未绑定但永远不会重新绑定到使用包,因此蓝图引用持有的代理对象永远不会解析为服务引用。

有时重新启动蓝图包会解决此问题,但通常需要重新启动完整的框架才能使其再次工作。

当非蓝图 bean 通过声明式服务使用服务时,我没有得到相同的行为。

有没有人在混合使用 DS 和蓝图来提供/使用服务时遇到过类似的问题?

【问题讨论】:

    标签: osgi apache-karaf blueprint-osgi declarative-services


    【解决方案1】:

    蓝图不是动态的。它有一个“阻尼”代理,它试图覆盖服务动态,但并不总是提供所需的东西。一般来说,我总是使用 DS 而不是 Blueprint。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      相关资源
      最近更新 更多