Nilai properti utama dalam Komponen OSGi di AEM

Saya sedang menulis komponen OSGi dengan nilai cardinal yang terkait dengannya.

Saya telah menulis baris berikut:

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

Kemudian dalam kode saya mencoba mencetak nilai utama:

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

Setelah saya menginstal dan memicu metode di komponen saya di bundel OSGi, tampaknya ada pengecualian penunjuk nol bahkan setelah saya mengisi nilai di konsol manajer konfigurasi di konsol AEM.

Ini adalah pertama kalinya saya bekerja dengan cardinality dan saya bahkan telah mencoba pendekatan Daftar dan Vektor sama seperti pendekatan array di atas, tetapi masih belum berhasil mencetak nilai di log.


person Amit Nandan Periyapatna    schedule 23.10.2015    source sumber
comment
Karena Anda tidak menggunakan anotasi komponen OSGi standar, mungkin ada baiknya untuk menjelaskan lingkungan Anda.   -  person Peter Kriens    schedule 26.10.2015


Jawaban (1)


Saya menyarankan Anda untuk menginisialisasi properti Anda sendiri.

Untuk ini ubah deklarasi properti saat ini dengan cara berikutnya:

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

Kemudian tulis metode yang akan menginisialisasi properti dengan nilai dari konfigurasi pada Aktivasi dan Modifikasi komponen:

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

Sekarang variabel cardinalValue Anda akan diinisialisasi.

person Oleksandr Tarasenko    schedule 23.10.2015