我在Apache Felix(实际上是Sling)主机中部署了一个捆绑包。该软件包包含一些可配置元素,其版本为2.0。
我已经将软件包更新到v2.0.1以进行一些小的代码更改,现在软件包将无法正确获取其配置 - 它仍保留在代码中设置的默认值,而不是获取Felix Web控制台中配置的值
日志中有一条错误消息:“[Configuration Updater] org.apache.felix.scr无法使用配置pid = com.mypackage.MyClass for bundle inputstream:my-bundle-2.0.1.jar,因为它属于捆绑输入流:my-bundle-1.0.jar“这听起来像是问题的原因。
然而:
我无法通过Web界面编辑输入流值 - 只需停止服务器,手动编辑配置文件,然后重新启动即可。当我更新捆绑包时,配置也应该更新?
虽然输入流指定了v1.0,但是当它升级到v2.0时,它没有问题。这有什么不同?
我在两台服务器上做了同样的事情(尽管可能并不完全!),并且一台服务器似乎有配置指定inputstream = v2.0(和v2.0.1的捆绑)并且它工作正常。什么导致输入流版本在此服务器上更新? (大概与2的答案相同 - 我想它将完全取决于过程中的哪些步骤已执行以及按什么顺序执行。)
感谢任何建议 - 我无法找到任何文档提供有关通过Felix Web控制台管理捆绑包的说明或故障排除建议。
答案 0 :(得分:0)
如果可能的话,我只需完全停止并删除捆绑包并使用Sling安装它,例如使用maven-sling-plugin
或使用WebDAV将其放在/apps/myapp/install
文件夹中。
我发现以这种方式保持一致是最容易的,并且安装非常自动化,并且可以正确处理捆绑升级。