AEM中OSGi组件的基数属性值

时间:2015-10-23 10:46:32

标签: osgi aem osgi-bundle

我正在编写一个OSGi组件,其中包含cardinal个值。

我写了以下几行:

@Property(name="cardinalValue",cardinality=4,description="testing cardinality")
private String[] cardinalValue;

然后在代码中我试图打印出基数值:

for(String cardinal : cardinalValue){
  log.debug(cardinal);
}

在OSGi包中的组件中安装并触发方法后,即使我在AEM控制台的配置管理器控制台中填充了值,也会出现空指针异常。

这是我第一次使用cardinality,我甚至尝试过与上面的数组方法相同的List和Vector方法,但仍然没有成功打印日志中的值。

1 个答案:

答案 0 :(得分:0)

我建议你自己初始化你的财产。

以下方式更改当前属性声明:

@Property(label="cardinalValue",cardinality=4,description="testing cardinality")
private static final String CARDINAL_PROPERTY = "cardinalValue";
private String[] cardinalValue;

然后编写方法,该方法将使用组件激活和修改的配置中的值初始化属性:

@Activate
@Modified
protected void activate(final Map<String, Object> props) {
    String[] cardinalValue = PropertiesUtil.toStringArray(props.get(CARDINAL_PROPERTY));
}

现在您的cardinalValue变量已初始化。