【问题标题】:OSGi service not implementing interfaceOSGi 服务未实现接口
【发布时间】:2017-07-05 07:41:40
【问题描述】:

我正在开发一个使用 OSGi 的项目,该项目具有以下代码

@Component(policy = ConfigurationPolicy.OPTIONAL, ds = true, immediate = true, metatype = false)
@Service(TestInterface.class)
public class TestInterface{

这里的代码没有实现服务将要在其中公开的接口。此外,我已经在任何地方验证了@Reference 没有在任何地方引用它。 它真的需要将其作为服务而不是仅作为组件吗?如果我想在另一个组件中使用它,我必须通过实现接口将其作为服务。 OSGI 真的要求暴露的服务应该实现接口吗?

【问题讨论】:

  • 声明式服务中没有@Service。您使用什么类型的注释?
  • felix scr 注释
  • @Service 注释来自哪里?
  • @ChristianSchneider,这是Felix SCR annotations 的链接。我登陆这个线程是为了考虑同样的问题,在我的一个项目中,有类似的服务没有界面并且工作正常。

标签: java osgi


【解决方案1】:

OSGi 服务可以在任何类型名称下注册,而不仅仅是接口。强烈建议使用接口,因为它们很好地将实现类与服务的消费者分开。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多