ค่าคุณสมบัติสำคัญใน OSGi Component ใน AEM

ฉันกำลังเขียนองค์ประกอบ OSGi ด้วยค่า cardinal ที่เกี่ยวข้อง

ฉันได้เขียนบรรทัดต่อไปนี้:

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

จากนั้นในโค้ดฉันพยายามพิมพ์ค่าสำคัญ:

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

เมื่อฉันติดตั้งและทริกเกอร์วิธีการในส่วนประกอบของฉันในชุด OSGi ปรากฏว่ามีข้อยกเว้นตัวชี้ null แม้ว่าฉันจะกรอกค่าในคอนโซลตัวจัดการการกำหนดค่าในคอนโซล AEM แล้วก็ตาม

นี่เป็นครั้งแรกที่ฉันทำงานกับ cardinality และฉันได้ลองใช้วิธี List และ Vector เช่นเดียวกับวิธีอาร์เรย์ด้านบน แต่ก็ยังไม่ประสบความสำเร็จในการพิมพ์ค่าในบันทึก


person Amit Nandan Periyapatna    schedule 23.10.2015    source แหล่งที่มา
comment
เนื่องจากคุณไม่ได้ใช้คำอธิบายประกอบคอมโพเนนต์ OSGi มาตรฐาน จึงอาจช่วยอธิบายสภาพแวดล้อมของคุณได้   -  person Peter Kriens    schedule 26.10.2015


คำตอบ (1)


ฉันขอแนะนำให้คุณเริ่มต้นคุณสมบัติของคุณเอง

สำหรับการเปลี่ยนแปลงการประกาศทรัพย์สินปัจจุบันในวิธีถัดไป:

@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 ของคุณจะถูกเตรียมใช้งาน

person Oleksandr Tarasenko    schedule 23.10.2015