headermask image

header image

Spring, Annotation, Transaction

Dapet masalah lagi dengan spring framework, jadi ceritanya mau membuat modul baru di aplikasi java web yang didevelop dengan spring tetapi dengan menggunakan spring 2.5 annotation sedangkan aplikasi yang ada belum sepenuhnya menggunakan annotation. Ketika sudah jadi dan jalan modul barunya ternyata pas mengakses aplikasi yang telah ada sebelumnya malah muncul error yang intinya tidak menemukan request handlernya, padahal sebelumnya tidak pernah terjadi seperti ini. Dugaan sementara adalah karena saya menambahkan bean DefaultAnnotationHandlerMapping dan AnnotationMethodHandlerAdapter serta context:component-scan untuk mendapatkan semua bean yg menggunakan annotation seperti @Controller, @Repository dan juga @Service sedangkan sebelumnya semua bean controller, service dan dao di definisikan di servlet dispatcher dan application context xml file-nya.

Setelah mencari solusi di internet, saya coba untuk mengubah konfigurasi xml nya dan akhirnya menemukan bahwa bean AnnotationMethodHandlerAdapter menyebabkan aplikasi tersebut tidak berjalan dengan baik. Apabila bean tersebut di remove maka untuk menampilkan hasil di view akan berjalan dengan baik dan aplikasi sebelumnya juga dapat berjalan tetapi untuk create dan edit akan menyebabkan error karena bean tersebut dibutuhkan untuk @RequestMapping annotation. Sampai sekarang solusi yg tepat masih belum ditemukan, saya akhirnya mencoba membuat servlet dispatcher yg baru dengan servlet-mapping yg berbeda khusus untuk menangani aplikasi yang dibuat dengan memanfaatkan feature annotation-nya spring dan it works!.

Masalah lainnya yang muncul adalah permasalahan transaction, ternyata konfigurasi bean transaction yang ada sebelumnya tiba-tiba saja membuat error ketika save atau update yang error stack-nya menyatakan untuk me-remove readOnly dari definisi transaction-nya atau mengganti FlushMode.NEVER/MANUAL menjadi FlushMode.COMMIT/AUTO. Tapi sayangnya ngga ada setting-an readOnly sama FlushMode di defini bean transaction-nya, balik lagi cari solusi di internet ternyata ada yg mirip dengan permasalahan saya tersebut, solusinya adalah mengubah urutan definisi bean-nya menjadi Security stuff, Transaction stuff kemudian baru bean-bean lainnya. Pas saya cek kembali konfigurasi xml nya sepertinya sih ngga ada masalah, dugaan saya adalah saya belum me-remove konfigurasi dan bean-bean terkait dengan annotation padahal untuk aplikasi spring annotation sudah dipindahkan ke dispatcher servlet yang baru akhirnya setelah dihilangkan aplikasinya bisa berjalan kembali.

Alhamdulillah, walaupun banyak permasalahan yang dihadapi akan tetapi sampai saat ini saya masih diberikan jalan keluarnya, baru sadar juga aplikasi tersebut sudah cukup kompleks saja dijalankan di laptop sudah terasa banget apalagi kalau tiba-tiba saja muncul bug-bug baru >.< agak susah membereskannya.

Share and Enjoy:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Reddit
  • RSS
  • StumbleUpon
  • Technorati
  • Twitter

If you liked my post, feel free to subscribe to my rss feeds

2 Comments so far (Add 1 more)

  1. ayo dunk jul ngoprek-ngoprek java lagi :)
    perasaan waktu kuliah loe semangat banget ngoprek java :p
    sorry baru tahu kalo website loe udah ganti ntar gw update blogroll nya deh…
    btw, masih setia aja nih pake drupal :D

    1. admin on February 22nd, 2009 at 11:34 pm
  2. udah lama nih gue nggak nyentuh java app =(

    btw website gue sekarang udah ganti, boss =D

    2. joolean on February 22nd, 2009 at 8:09 am

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*