Sunday, October 16, 2011

Troubleshooting : java.lang.LinkageError: loader constraint violation

Environment: NetBeans IDE 7.0.1
Trigger : Menjalankan Program Setelah Mengimport sebuah library bernama org.openide.nodes

Beberapa waktu yang lalu saya sempat mencoba mengikuti tutorial tentang membuat aplikasi CRUD (Create, Read, Update, and Delete) dengan menggunakan Netbeans Platform. Salah satu fiturnya adalah menampilkan daftar nama "Customer" dalam bentuk TreeView (sebuah list dengan hirarki). Nah, untuk bisa merealisasikan fitur tersebut kita perlu mengimplementasikan sebuah library yang bernama org.openide.nodes. akhirnya saya melakukan import library secara manual dengan cara "klik kanan pada (projectku->modules) dan memilih menu add library". setelah saya melakukan import library kemudian saya meng-compile source code yang sudah saya buat. Proses kompilasi pun berhasil namun ternyata ketika saya mengklik "run" pada netbeans untuk menjalankan aplikasi tersebut, muncul sebuah error pada saat Runtime isi stackTrace-nya seperti ini:

java.lang.LinkageError: loader constraint violation: when resolving method "org.openide.explorer.ExplorerManager.setRootContext(Lorg \ openide\ nodes \ Node )V" the class loader (instance of org/netbeans/StandardModule$OneModuleClassLoader) of the current class, org/gaza/viewer/AdkViewerTopComponent, and the class loader (instance of org/netbeans/StandardModule$OneModuleClassLoader) for resolved class, org/openide/explorer/ExplorerManager, have different Class objects for the type orer.ExplorerManager.setRootContext(Lorg \ openide \ nodes \ Node)V used in the signature

Wednesday, October 5, 2011

Yuk, Berkenalan Dengan MVC (Part. 2)

Sumber: Internet
(lupa dari mana)
Setelah sekian lama vakum dari dunia per-blog-an, akhirnya saya berusaha memaksa diri saya untuk tetap bisa menulis di Blog ini terutama menulis tentang dunia software engineering yang sedang saya tekuni sekarang. Nah, seperti janji saya sebelumnya, pada kesempatan kali ini akan membahas tentang "Bagaimana cara kerja MVC" melanjutkan tulisan saya yang telah lalu yang berjudul "Yuk, Berkenalan Dengan MVC (Part.1)". Okay, tanpa berpanjang kalam lagi saya akan memaparkan tentang bagaimana cara kerja dari aplikasi yang memiliki arsitektur MVC. enjoy :)

1. Separated of Concern (Pembagian Fokus)
Salah satu yang menjadi alasan terciptanya sebuah konsep MVC dalam arsitektur perangkat lunak adalah karena para pengembang aplikasi menginginkan adanya fokus kerja yang bersifat independent. kata independent yang saya gunakan ini memiliki maksud bahwa seorang web designer tidak harus mengacak-acak program logic dan database query yang dibuat oleh para programmer web dan database. Dengan menggunakan konsep Model, View, dan Controller, seorang web designer dapat berfokus pada pembuatan User Interface (View) tanpa harus menyentuh bagian Model ataupun Controller. Dengan cara seperti ini, proses maintenance aplikasi menjadi lebih mudah karena kita hanya perlu merombak salah satu layer saja tanpa harus merombak keseluruhan aplikasi.