2013-05-21 26 views
1

我正在轉換一些代碼以利用EJB 3,並且我想出了一個場景,我有一個@Stateless EJB被注入到用@SessionScoped註釋的JSF Managed bean中。注入JSF @SessionScoped的@Stateless EJB的生命是什麼?

我想知道這是如何影響EJB的壽命的?它是否保持無狀態並在每次調用其中一個方法後被銷燬,或者在會話期間是否存在相同的bean?

+0

你想知道會發生什麼,或至少嘗試過它,並得到一個錯誤? –

+0

我沒有錯誤,但問題是除非我理解它,否則可能會導致錯誤。我試圖確定對EJB的引用是否在會話的整個生命週期中保持不變,或者每次訪問ejb時是否獲得新的引用。 – tarka

回答

2

由於無狀態EJB會話bean由服務器共享,因此與其生命週期和其他會話作用域bean的生命週期沒有直接關係。 Web服務器在需要時創建並銷燬這些bean。
從EJB規範:

容器可以在任何執行實例創建時,有一個商業方法或創建方法的客戶端調用沒有直接關係。

欲瞭解更多信息,請參閱specification(約99頁)。