1

我有一个 OSGI (Felix) 应用程序,其中使用声明性服务创建的服务很少。例如

@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被触发,因此没有调用修改的方法,我也看不到新的属性值。我注意到的一件奇怪的事情是,即使 bundle felix.scr列在已安装的 bundle 列表中,我也看不到 Bundle org.apache.felix.scr与其对应的启动事件。

关于为什么属性没有更新的任何提示?

4

0 回答 0