我有EAR与哪个WAR&少数JARS。在我的WAR下最终还有更多的JARS。
我在EAR中将一组DATA OBJECT打包为JAR,其中一个Managed Bean位于'SessionScope'下,其属性为> 'eager = true'。说'A.Java'
现在,从我的WAR我有一个ManagedBean,比如'B.java','RequestScope'试图获取A.java的实例,它返回为NULL。从日志中,当跟踪得到以下异常时:
The managed-bean with name 'B' must be application scoped to support eager=true.
是否存在Managed Bean Scope的层次结构,我们必须确保在归档和部署为EAR时
答案 0 :(得分:0)
热切的应用程序 - 豆类
托管bean被懒惰地实例化。也就是说,当从应用程序发出请求时,它们就会被实例化。
要在应用程序启动时以及在发出任何请求之前强制实例化应用程序范围的bean并将其放置在应用程序范围内,应将托管bean的eager属性设置为true,如下所示例如:
@ManagedBean(eager=true)
@ApplicationScoped
eager
属性表示容器在应用程序启动时创建实例,而不是按需创建实例。它可以将此实例放入应用程序范围。 (目前没有其他范围)。因此,热切创建的托管bean必须是ApplicationScoped
。