gpt4 book ai didi

java - Felix ConfigAdmin(文件)|我的文件需要包含 service.pid 吗?

转载 作者:行者123 更新时间:2023-12-01 22:06:48 25 4
gpt4 key购买 nike

我正在使用 Felix ConfigurationAdmin 1.8.6(包含在 OSGI enRoute 中),但我无法让它处理文件夹中的文件。

我下载了源代码来看看发生了什么,但我仍然不明白......

首先,我添加了运行属性 felix.cm.dir,指定我要配置服务的文件夹。从我所看到的调试来看,它工作正常,但我的托管服务得到一个空属性映射。

接下来,我发现我的属性必须具有以下格式才能读取(带双引号):

key="value"

不过,我得到了一个空属性映射...

然后我发现,在读取我的属性后,FilePersistenceManager.seek() 仅在不包含 service.pid 属性或包含该属性且等于文件名的情况下返回字典。在比较之前,它用斜杠替换点,因此它永远不等于...我最好不要指定 service.pid 属性,无论如何,我不明白这一点。

当字典返回到CachingPersistenceManagerProxy时,只有当字典包含service.pid或factory.pid属性时,它才会被缓存;这永远不会发生。

我错过了什么吗?

最佳答案

我不知道 enRoute 是否附带 Apache Felix FileInstall,但如果没有此 bundle 配置管理服务将不会获取配置文件。 FileInstall 通常会处理这个问题。在这种情况下,是的,您需要确保您的 cfg 文件的名称确实与您的 PID 匹配。因此,对于 pid: my.conf.foo 的配置,您需要在 FileInstaller Bundle 监视的文件夹中放置一个文件 my.conf.foo.cfg 。它将获取此文件并确保您的配置已使用该文件的内容进行更新。

关于java - Felix ConfigAdmin(文件)|我的文件需要包含 service.pid 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32577222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com