我创建了一个osgi包并使用Apache-karaf作为osgi容器。我通过放置日志并将其放在deploy文件夹中来部署应用程序来测试应用程序。一切正常。在进行测试时,bundle id会增加,并且在部署迭代后,部署应用程序时会调用activate方法两次。我在新的apache-karaf中验证了相同的效果,它按预期工作,只调用一次激活方法。 注意:bundle是带有一些简单print语句的应用程序。
1. Is this performance issue in Apache-karaf container for reaching more number of bundle ids or kind of caching problem in apache-karaf.
2. Is this problem with deploying the bundle in deploy folder instead of osgi:install?
答案 0 :(得分:1)
部署文件夹存在一些问题。它由felix fileinstall监控。因此,检查文件系统的时间表将决定它的反应方式。
使用bundle:install更可靠,也非常适合测试。使用maven install将捆绑包简单地部署到本地maven仓库。然后使用mvn:groupId / rtifactId / version url将其安装到karaf中。
如果您随后更改了捆绑包,只需再次使用maven install上传它并进行更新。这将从您当地的maven仓库重新加载。
如果您使用maven -SNAPSHOT版本(您应该使用),那么您也可以使用bundle:watch *。然后,Karaf将在本地maven仓库中查找更改并自动更新捆绑包。