我有一个OSGI(Felix)应用程序,其中使用声明性服务创建的服务很少。 e.g。
@Service
@Component(metatype = true)
public class SomeService implements IInterface {
@Property(value = "1")
private static final String SOME_PROP = "SOME_PROP";
@Modified
public void modified(Map<String, ?> inConfig)
{ //some code
}
@Activate
public void activate(Map<String, ?> inConfig)
{ //some code
}
现在,在我启动框架后,我可以看到对应于此服务的捆绑包已经启动。 如果我尝试通过OSGI控制台更改属性(SOME_PROP),我只会看到事件主题 org / apache / felix / webconsole / plugins / event / internal / converter / ConfigurationEventConverter / CM_UPDATED 被触发的事件。我没有看到 org / osgi / framework / ServiceEvent / MODIFIED 被触发,因此未调用修改后的方法,我看不到新的属性值。另外一个奇怪的事情我注意到,即使捆绑 felix.scr 列在已安装的捆绑列表中,我也看不到Bundle org.apache.felix.scr已启动对应的事件。
关于为什么属性没有得到更新的任何提示?