【问题标题】:Using Sling Scheduler with Eclipse Equinox or OSGI @Reference rules将 Sling 调度程序与 Eclipse Equinox 或 OSGI @Reference 规则一起使用
【发布时间】:2018-11-12 12:42:48
【问题描述】:

我想在我的 Eclipse Equinox 环境中使用 Sling 调度程序作为捆绑包,现在尝试只运行示例,无论是白板还是通过 API 都没有成功。经过大量调试后,我现在能够使其工作,但我必须在 QuartzScheduler 中更改调度程序包并更改对 MetricRegistry 的引用以添加可选基数:

@Reference(cardinality=ReferenceCardinality.OPTIONAL)
MetricRegistry metricsRegistry;

否则会导致服务无法在 Equinox 上启动。

在捆绑包中运行测试似乎即使使用 Felix 也永远无法解决,但在这种情况下,服务仍然启动。我还应该注意到 MetricRegistry 似乎不是一项服务,我不明白为什么它会通过@Reference 实例化。实际上将行更改为:

MetricRegistry metricsRegistry = new MetricRegistry();

在所有情况下(Felix 或 Equinox)都将正确检索 metricsRegistry。

我是否发现了错误或有什么我不明白的地方?

【问题讨论】:

    标签: osgi sling


    【解决方案1】:

    在 Apache Sling 中,MetricRegistry 实例是从 org.apache.sling.commons.metrics 捆绑包中注册的,请参阅 MetricsServiceImpl#activate。你应该在你的 OSGi 容器中部署这个包。

    【讨论】:

      猜你喜欢
      • 2011-09-12
      • 2014-12-15
      • 1970-01-01
      • 2013-05-18
      • 1970-01-01
      • 2020-12-23
      • 2018-09-08
      • 2015-07-24
      • 1970-01-01
      相关资源
      最近更新 更多