我创建了一个 osgi 包并使用 Apache-karaf 作为 osgi 容器。我正在通过放置日志并将其放入部署文件夹来部署应用程序来测试应用程序。一切正常。在进行测试时,包 ID 会增加,并且在部署应用程序时进行一些迭代后,激活方法会被调用两次。我已经在新的 apache-karaf 中验证了相同的情况,它按预期工作,激活方法仅被调用一次。 注意:该 bundle 是带有一些简单打印语句的应用程序。
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?
最佳答案
部署文件夹存在一些问题。它由 felix fileinstall 监控。因此,它检查文件系统时的时间表将决定它的 react 。
使用bundle:install 更加可靠,并且非常适合测试。使用 maven install 将 bundle 简单部署到本地 Maven 存储库。然后使用 mvn:groupId/rtifactId/version url 将其安装到 karaf 中。
如果您随后更改了 bundle ,您只需再次使用 maven install 上传它并进行更新即可。这将从您本地的 Maven 存储库重新加载。
如果您使用 maven -SNAPSHOT 版本(您应该这样做),那么您也可以使用 bundle:watch *。然后 Karaf 将在本地 Maven 存储库中查找更改并自动更新 bundle 。
关于java - 部署 bundle 时 Apache-karaf 容器的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33279029/