我正在使用 karaf 服务器来部署和安装功能。我安装了一个功能“测试功能”,然后我从存储库中删除了它。在激活其他一些功能时,它给了我一个异常(exception)——
org.osgi.service.resolver.ResolutionException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=test-feature; type=karaf.feature; version="[1.0.0.SNAPSHOT,1.0.0.SNAPSHOT]"; filter:="(&(osgi.identity=test-feature)(type=karaf.feature)(version>=1.0.0.SNAPSHOT)(version<=1.0.0.SNAPSHOT))"
我已经检查了 karaf 服务器的所有文件夹,因此没有与测试功能相关的数据。
那么有什么方法可以清理与特定功能相关的缓存或数据? TIA
最佳答案
您必须先删除 karaf 中的功能测试功能,然后才能将其从功能 xml 中删除。错误消息告诉您 karaf 期望此功能存在,因为您之前已安装它。
基本上 karaf 保留了一个根需求列表,用于在最后创建整套所需的包。如果你执行 feature:install ,那么你告诉 karaf 向这个根需求列表添加一个功能。当您安装或卸载任何功能时,Karaf 总是尝试解决所有这些根要求。
关于apache-karaf - "Unable to resolve root:"用于 karaf 中的已卸载功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48710992/