如果一個EJB的方法對同一個EJB進行JNDI查找,然後執行其他方法,這是否保證在同一個線程中執行?如何處理EJB對象的實際實例;它是否與調用方法中使用的實例相同?EJB請求自己的引用?
3
A
回答
3
EJB規範使得沒有限制到注入EJB入本身的可能性(見EJB 3.1規範,章節16.5.1.1):
的〔@EJB]參考可以是會話bean的業務接口或會話Bean的無界面視圖,或會話Bean或實體Bean的本地主界面或遠程主界面。
與每個EJB調用一樣,它將始終在同一個線程中執行;基於該不可重入實例規則,它不能相同實例(章13年4月10日):
[...]有狀態和無狀態會話bean沒有被編碼爲折返。這條規則的一個含義是,應用程序不能對無狀態或有狀態的會話bean實例進行回送調用。
這意味着:如果bean A調用bean B上的方法,並且B調用A上的任何方法,容器必須確保B調用A的另一個實例;它是同一個線程的事實並不重要,因爲重入和線程安全是不同的事情。
同樣的情況也適用於當一個通過查找的JNDI引用調用本身,容器在尋找A的釋放實例反之涉及在運行時,如果A直接調用它的方法,這是一個簡單的Java方法調用「this」,而不涉及容器。
相關問題
- 1. 對自己的PHP請求
- 2. Nginx的stub_status:忽略自己的請求
- 3. opencpu.js請求我自己安裝的opencpu?
- 4. 創建您自己的PayPal請求
- 5. MiniProfiler,擺脫請求自己的資源
- 6. 403對ajax請求到自己的域
- 7. HREF引用自己
- 8. 要求自己構建自己的類
- 9. 來自無狀態EJB的JMS同步請求答覆
- 10. 在原型中使用自己的AJAX請求回調方法
- 11. GitLab:防止用戶接受他們自己的合併請求
- 12. Google API請求可以請求關於它自己的詳細信息嗎?
- 13. Python請求庫與代理 - 獲取請求仍然發送我自己的IP
- 14. Apache每隔幾個請求就自動重啓自己
- 15. 我可以用EJB 3.0創建自己的Singleton Stateless Bean嗎?
- 16. 如何製作自己認證的REST請求?
- 17. Github拉到私人回購請求(從我自己的分支)
- 18. Angularjs - 從自己的服務器請求PHP腳本返回403
- 19. 無法覆蓋shouldInterceptRequest(),使我自己的HTTP請求
- 20. 爲什麼要創建自己的請求對象?
- 21. 如何在自己的線程中執行Web請求?
- 22. 代理服務器解析自己的請求
- 23. Django無法http請求自己的頁面?
- 24. 獲取網站發送給自己的POST請求?
- 25. Restangular - 如何取消/執行我自己的請求
- 26. 引用自己的表的外鍵?
- 27. 引用Swift中的自己的類型?
- 28. 引用自己的對象屬性
- 29. Django:InlineModelAdmin引用它自己的模型
- 30. 無法引用我自己的包