部署错误:使用eager = true在JSF ApplicationScoped bean中注入Spring bean会在glassfish中出错

时间:2012-03-23 10:21:55

标签: spring jsf deployment glassfish glassfish-3

我想将spring bean作为ManagedProperty注入到应用程序范围内的jsf bean中,并且也是急切加载的。

@ManagedBean(name="SysProps", eager=true)
@ApplicationScoped
public class SysProps {     // jsf bean

   @ManagedProperty(value = "#{systemConfigService}")
   private SystemConfigService systemConfigService;    // spring bean
}

我想在部署时加载SysProps bean并调用其使用此spring bean的方法之一。但是在glassfish 3.1.2中部署时会出错。例外是,

com.sun.faces.mgbean.ManagedBeanCreationException: Unable to set property systemConfigService for managed bean sysProps

这在Jetty8中工作正常,但同样的事情在Glassfish 3.1.2中出错。这是因为在glassfish中,jull应用范围的bean具有eager属性为true,在初始化spring bean之前加载,它在注入spring bean时会出错。但Jetty8的情况并非如此,因此可以正常使用。

任何人都可以为我提供一些备用或良好的解决方案来加载应用程序作用域的jsf bean(在部署时),我也应该能够注入spring bean吗?

0 个答案:

没有答案