Sorry yg tadi ga kasih alasan yg kongkrit. ini mungkin membantu :) http://blogs.sun.com/chengfang/entry/do_s_and_don_ts
2009/5/9 Achmad Arif Rachim <a...@rach.im>: > Ahhhh mungkin ini bisa memberikan pencerahan :) > > http://www.theserverside.com/discussions/thread.tss?thread_id=54022 > > 2009/5/9 Achmad Arif Rachim <a...@rach.im>: >> Hehehehe ini ternyata kasusnya adalah salah cara make SFSB :). >> >> Ini pasti niruin sample dari SLSB, atau bisa jadi ini dapet contoh >> Sample yg ngawur kekekekekekeke. >> >> Kalau kita taruh SFSB kedalam attribute Controller, kita harus tahu >> lifecycle dari controller tersebut. Kalau kontroller tersebut di >> instantiate setiap new request berarti ya kaga ada gunanya make SFSB >> hehehehehehhe, sami mawon sama SLSB. Kalau controller kita berupa >> servlet, berarti SFSB bakalan dipake berulang2 kali setiap ada >> request. >> >> Nah cara penggunaan SFSB yg tepat bisa dengan 2 alternatif : >> >> 1. Kamu menghandle sendiri Proses penyimpanan SFSB reference object >> kedalam HttpSession, dan meremove setelah selesai. >> 2. Alternatifnya, kamu menggunakan Controller yg memiliki Scope >> Conversation, seperti kebanyakan framework jaman sekarang. >> >> Nah kalau kamu menggunakan framework yg memiliki conversation scope, >> artinya, instance dari controller kamu itu secara otomatis, di >> initiate pada saat conversation begin, dan berakhir saat conversation >> end. Dan artinya, satu conversation controller dimiliki oleh satu >> user. Sehingga kamu bisa inject SFSB @EJB didalam attribute controller >> kamu. Contoh framework yg support Conversation misalnya Spring, Seam, >> Google Guice. >> >> Tapi kalau kamu menggunakan controller yg Application Scope, >> contohnya Servlet. Servlet di instantiate oleh container, dan >> digunakan berkali2 setiap ada request dari user yg beda. Nah kalau >> kamu pakai Servlet, kamu tidak boleh meng-inject SFSB kedalam >> attribute servlet. Sebab ini sama juga artinya men-sharing SFSB itu ke >> setiap request untuk semua user. >> >> Sama halnya juga dengan controller yg Request Scope. Ini contohnya >> seperti WebWork, instance dari controller nya diinstantiate setiap ada >> request. Nah kamu juga tidak boleh menempatkan SFSB kedalam attribute >> controller ini. Sebab setiap request berarti kamu harus me lookup SFSB >> lagi. >> >> Nah, untuk Application Scope dan Request Scope controller, cara >> menggunakan SFSBnya adalah dengan melookup SFSB dari jndi didalam >> method, kemudian disimpan kedalam HttpSession. >> >> :) Cheers ! >> > > > > -- > Warm Regards, > Arif Rachim > -- Warm Regards, Arif Rachim