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