目前我在我的应用程序中使用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