0

我在 Eclipse Mars 下使用 Bndtools 插件。在一个项目中,我需要 Apache FileInstall 包,并且我在运行描述符下的“运行要求”中选择了它。捆绑包处于活动状态。

我不明白如何获取 FileInstall 的当前参数,如轮询、监视配置文件的目录等等,所以我不知道将实现 ManagedService 的类的配置文件放在哪里。

如果我尝试在 VM 参数下添加以下行...

-Dfelix.fileinstall.dir=/home/ppatierno/Downloads

几秒钟后,Config Admin 服务进入 Stopping 状态。

如果我没有在“运行要求”下添加 FileInstall 包,而是从 apache felix 控制台安装并启动它,它会启动并变为活动状态,但不会打印属性上方的主要配置。

任何想法 ?

4

1 回答 1

0

我不确定这是否对您有帮助。我使用 FileInstaller 所做的如下:

我部署了一个功能,例如:

<feature name="myFeature" version="${myproject.version}">        
    <configfile finalname="/my/path/myConfig.cfg" override="false">mvn:my.group/artifact.with.the.conf.file.in.nexus/${myproject.version}/cfg/configuration</configfile>
    <bundle>mvn:my.group/artifact.with.the.feature.impl/${project.version}</bundle>
</feature>

这将复制一个配置文件,my/path/然后将该文件部署为具有名称的服务myConfig。然后为了获取更新,我在配置器(ManagedService)启动时注册它,如下所示:

    Hashtable <String, Object> properties = new Hashtable<String, Object>();
    properties.put(Constants.SERVICE_PID, "myConfig");
    myService = context.registerService (ManagedService.class.getName(),this , properties);
于 2015-12-22T10:00:53.197 回答