gpt4 book ai didi

java - 在 Karaf 的 OSGI 中使用 @Activate 注释

转载 作者:行者123 更新时间:2023-11-29 04:06:03 24 4
gpt4 key购买 nike

我正在尝试在我的全新包中添加一个函数,该函数在 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)页。与它在那里提到的不同,我的 OSGI-INF/....xml 是自动生成的。我不知道如何进一步调试。

综上所述,问题是,如何实际触发我的activate 函数?

最佳答案

Component 注释也必须有一个 immediate=true。我添加了它,并且在 karaf 启动时触发了 activate() 函数。

@Component(
immediate=tue,
service = BrandNewBundle.class
)

关于java - 在 Karaf 的 OSGI 中使用 @Activate 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58609160/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com