目前我在我的應用程序中使用EJB3.0 session beans
。通常我使用jndi name
來查找bean並調用相關的方法。但最近我建議將這些參考文獻存儲在Map
中,而不是一次又一次地查找。將EJB 3 Session Bean參考存儲到映射中
這是
Session Bean
引用存儲到Map
避免其查找每次一個好的做法?或者它是危險的?什麼樣的 問題,如果在所有的應用程序可能不得不遇到?
如果這是一個很好的做法,那麼我有另一個擔心。包含Map
存儲引用
類是模塊A.的一部分。雖然
session beans
是模塊B1 ... BN的一部分。所以一旦查找時我 存儲參考Map
,我可以找回它。在此期間, 模塊Bn被重新部署,但A保持原樣。所以現在在查找 豆從Map(因爲它包含條目)使用它,ClassCast Exception
被拋出。
這是什麼原因,我該如何避免? 我使用JBoss應用服務器 - JBoss的5.1.0.GA
是的,我沒有發佈日誌,因爲它發生在很長的一段時間,從那時起我沒有使用緩存。那麼這是否意味着如果我在我的字段上使用**'@ EJB' **註釋,它只是多餘的來緩存這些引用?是的,當我沒有使用緩存,重新加載模塊新鮮的循環的豆作品沒有任何問題。你的類加載器理論看起來很有說服力,但在這些情況下最適合**'ClassCastException' **。或者可能在重新加載模塊時,其引用池將被應用程序服務器所維護並刪除,並創建新的引用 – SacJn