在Karaf的OSGI中使用@Activate注释

问题描述 投票:0回答:1

我正在尝试在我的全新捆绑软件中提供一个功能,该功能在启动Apache Karaf容器时会触发一次。

Bundle中的主类如下:

@Component(service = BrandNewBundle.class)
public class BrandNewBundle {

    ....
    @Activate
    protected void activate(ComponentContext myComponentContext) {
        LOG.info("Brand new bundle started.");
    }
}

在karaf控制台中,我将捆绑软件状态显示为Active。但是在日志中,没有看到我尝试记录的消息。

一些信息:

  • 这是一个Maven版本
  • osgi.cmpnslf4j-api是我在pom.xml中的依赖项,到目前为止没有其他内容。
  • 此中没有bnd.bnd文件

我已经阅读了Apache Felix Service Component Runtime (SCR)页面。与这里提到的不同,我的Apache Felix Service Component Runtime (SCR)是自动生成的。我不知道如何进一步调试。

总而言之,问题是,如何实际触发我的OSGI-INF/....xml函数?

java osgi apache-karaf
1个回答
0
投票

这可能是karaf中的经典问题。您需要安装scr功能。

activate
© www.soinside.com 2019 - 2024. All rights reserved.