4

我正在编写与声明性服务使用捆绑在一起的内容。对于配置,我在 DS 声明中使用属性。这些道具通常可以由 Config Admin 更改,但它们不会持久化。容器重启后,组件具有默认值。

我正在使用这样的配置管理员:

Configuration c = configurationAdmin.getConfiguration(UserAgent.SERVICE_PID, null);
System.out.println(c.getProperties()); // every time is null!
Dictionary props = new Hashtable();
props.put(UserAgent.PROPERTY_PORT, 5555);
c.update(props);

在组件中我有:

// ...

@Modified
public void updated(ComponentContext context) {
    config = context.getProperties();
    init();
}

@Activate
protected void activate(ComponentContext context) {
    config = context.getProperties();
    init();
}
//...

我正在使用 Felix,属性文件存储在缓存中

service.bundleLocation="file:bundles/cz.b2m.osgi.phonus.core_1.0.0.SNAPSHOT.jar"
service.pid="cz.b2m.osgi.phonus.sip"
port=I"5555"

但是重启后没有加载。我做错了什么?感谢所有提示。

4

1 回答 1

1

Problem was in Pax Runner which every restart (clean) erased the data folder of Config Admin bundle.

To make sure that Pax Runner does not clear the data, you can use the --usePersistedState=true flag.

于 2012-05-30T12:11:24.687 回答