AEM 中 OSGi 组件中的基数 属性 值
Cardinal property value in OSGi Component in AEM
我正在编写一个具有 cardinal
关联值的 OSGi 组件。
我写了以下几行:
@Property(name="cardinalValue",cardinality=4,description="testing cardinality")
private String[] cardinalValue;
然后在代码中我试图打印出基数:
for(String cardinal : cardinalValue){
log.debug(cardinal);
}
一旦我在 OSGi 包中的组件中安装并触发方法,即使在 AEM 控制台的配置管理器控制台中填写值之后,似乎仍存在空指针异常。
这是我第一次使用 cardinality
,我什至尝试了与上述数组方法相同的 List 和 Vector 方法,但仍然无法成功打印日志。
我建议您自己初始化 属性。
为此,将当前 属性 声明更改为下一种方式:
@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
变量将被初始化。
我正在编写一个具有 cardinal
关联值的 OSGi 组件。
我写了以下几行:
@Property(name="cardinalValue",cardinality=4,description="testing cardinality")
private String[] cardinalValue;
然后在代码中我试图打印出基数:
for(String cardinal : cardinalValue){
log.debug(cardinal);
}
一旦我在 OSGi 包中的组件中安装并触发方法,即使在 AEM 控制台的配置管理器控制台中填写值之后,似乎仍存在空指针异常。
这是我第一次使用 cardinality
,我什至尝试了与上述数组方法相同的 List 和 Vector 方法,但仍然无法成功打印日志。
我建议您自己初始化 属性。
为此,将当前 属性 声明更改为下一种方式:
@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
变量将被初始化。