0

我在 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" 这听起来像是问题的原因。

然而:

  1. 我无法通过 Web 界面编辑输入流值 - 只能通过停止服务器、手动编辑配置文件并重新启动。当然,当我更新捆绑包时,配置也应该更新?

  2. 虽然 inputstream 指定了 v1.0,但是 bundle 在升级到 v2.0 时并没有问题。这里有什么不同?

  3. 我在两台服务器上做了同样的事情(虽然可能不完全是!),一台服务器似乎有配置指定 inputstream=v2.0 (以及 v2.0.1 的捆绑包),它工作正常。是什么导致输入流版本在此服务器上更新?(大概与 2 的答案相同 - 我想这将完全取决于流程中的哪些步骤已执行以及以什么顺序执行。)

感谢您收到任何建议 - 我无法找到任何文档来提供有关通过 Felix Web 控制台管理捆绑包的说明或故障排除建议。

4

1 回答 1

0

如果可能的话,我会简单地停止并完全删除捆绑包并使用 Sling 安装它,例如使用 WebDAVmaven-sling-plugin或将其放入文件夹中。/apps/myapp/install

我发现这种方式最容易保持一致,并且安装非常自动化,并且可以正确处理捆绑升级。

于 2012-05-29T11:24:02.717 回答