2011/11/3 Heri Pardian <heriparid04@yahoo.com>
> @ mas endy : Terima kasih mas atas pencerahannya, saya setuju, mungkin karena relatif path ke package "com.sample.app" tidak terdeteksi spring.
> Saya coba lagi menggunakan ClasspathXmlApplicationContext ternyata bean yang saya anotate masih tidak terdeteksi,
> tapi..anehnya Ketika aplikasi saya export dengan option pada eclipse
> "copies required libraries into sub-folder next to generated JAR" (*)
> Hasilnya seperti yang saya inginkan.
Cara troubleshootnya gini :
1. Setting loggernya di level DEBUG
2. Jalankan aplikasinya, nanti Spring akan menampilkan file xml mana
saja yang dia load.
Cek apakah applicationContext.xml yang kita punya sudah diload atau belum.
Kalau belum, ada beberapa penyebab :
- lokasi xml salah, entah salah path nya, atau salah teknik
pencariannya (FileSystem vs Classpath)
- file jar tempat xml itu berada tidak terdaftar dalam classpath.
Setelah dipastikan xml nya diload oleh Spring, lanjut ke step 3.
3. Paling sering terjadi adalah ClassNotFoundException, atau failed to
autowire dependency.
Beberapa kemungkinan penyebab :
- jar tempat class itu berada tidak terdaftar dalam classpath
- jarnya sudah terdaftar, tapi class yang mau diautowired belum
diinstankan oleh Spring
karena belum dikasi @Service atau belum ditulis di xml
- sudah dikasi @Service, tapi belum didaftarkan di component-scan.
Masalah seperti ini terjadi karena :
1. kurang paham tentang classpath di berbagai situasi, misalnya :
- menjalankan aplikasi via command line (java nama.jar)
- menjalankan aplikasi via appserver (tomcat, glassfish, etc)
- menjalankan aplikasi via maven, ant, atau sejenisnya
2. kurang paham tentang fundamentalnya Spring, terutama :
- teknik menginstankan bean (via xml dan annotation)
- teknik injection (via xml atau annotation)
- teknik menginstankan applicationContext
Jadi, saran saya, coba perkuat lagi fundamentalnya, terutama di bagian
classpath dan spring.
--
Endy Muhardin
http://endy.artivisi.com
Jangan lupa untuk bergabung ke codeandroid-id@googlegroups.com, untuk diskusi fokus mengenai pengembangan aplikasi sekitar android. email pendaftaran ke codeandroid-id-subscribe@googlegroups.com.
Webnya http://www.codeandroid.or.id
===
Kalau mau keluar dari mailing list ini, caranya kirim sebuah email ke jug-indonesia-unsubscribe@yahoogroups.com.
Jangan lupa, website JUG Indonesia adalah http://www.jug.or.id
No comments:
Post a Comment