Caching 远程无状态会话bean引用可以缓存在EJB3中吗?

Caching 远程无状态会话bean引用可以缓存在EJB3中吗?,caching,ejb-3.0,ejb,jndi,stateless-session-bean,Caching,Ejb 3.0,Ejb,Jndi,Stateless Session Bean,我正在从J2SE应用程序调用远程无状态会话bean,并希望缓存对会话bean的引用,以降低查找成本。这样行吗 在EJB2中,ServiceLocator模式通常用于缓存对远程资源的查找,但EJB3没有单独的EJB Home(通常缓存)和远程对象 谷歌搜索,一个常见的答案是使用EJB3注入,但由于我正在从J2SE客户端调用远程EJB服务器,所以我不能使用注入。是的,它们可以缓存。但是我不知道是否定义了行为,如果您有一个缓存引用并且服务器在其下重新启动,将会发生什么。您可以测试该场景,但行为可能因容

我正在从J2SE应用程序调用远程无状态会话bean,并希望缓存对会话bean的引用,以降低查找成本。这样行吗

在EJB2中,ServiceLocator模式通常用于缓存对远程资源的查找,但EJB3没有单独的EJB Home(通常缓存)和远程对象


谷歌搜索,一个常见的答案是使用EJB3注入,但由于我正在从J2SE客户端调用远程EJB服务器,所以我不能使用注入。

是的,它们可以缓存。但是我不知道是否定义了行为,如果您有一个缓存引用并且服务器在其下重新启动,将会发生什么。您可以测试该场景,但行为可能因容器而异。

如果服务器离开,您的引用将无效

至于在正常生命周期中的缓存,这应该没问题。我已经在EJB2和EJB3中这样做了很多年,从来没有遇到过问题。通常,我只有一个静态的“LookupServices”类,它只查找主页,或者返回现有的主页(如果已经存在),并将其存储在地图中