我正在编写与声明性服务使用捆绑在一起的内容。对于配置,我在 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"
但是重启后没有加载。我做错了什么?感谢所有提示。