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 !