[英]Reload the content of .cfg file in OSGi Karaf and Blueprint on each class use
[英]use @Activate annotation in OSGI in Karaf
我試圖在我的全新捆綁包中有一個 function,當 Apache Karaf 容器啟動時觸發一次。
Bundle 中的主要 class 如下所示:
@Component(service = BrandNewBundle.class)
public class BrandNewBundle {
....
@Activate
protected void activate(ComponentContext myComponentContext) {
LOG.info("Brand new bundle started.");
}
}
在 karaf 控制台中,我看到捆綁包狀態為Active
。 但是在日志中,我沒有看到我嘗試記錄的消息。
一些信息:
osgi.cmpn
和slf4j-api
是我在pom.xml
中的依賴項,到目前為止沒有別的。bnd.bnd
文件我已閱讀Apache Felix Service Component Runtime (SCR)
頁面。 與那里提到的不同,我的OSGI-INF/....xml
是自動生成的。 我不知道如何進一步調試。
綜上所述,問題是,如何真正觸發我的activate
function?
Component
注釋也必須有一個immediate=true
。 我補充說,並且在 karaf 啟動時觸發了activate()
function。
@Component(
immediate=tue,
service = BrandNewBundle.class
)
這可能是 karaf 的一個經典問題。 您需要安裝 scr 功能。
feature:install scr
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.