FacesContextUtils.getWebApplicationContext(FacesContext.getCurrentInstance())返回null

Dej*_*ell 2 java jsf spring

我正在使用Spring,Hibernate和JSF.

为了从应用程序上下文中获取bean,我写道:

public static Object findBean(String name) {
  return FacesContextUtils.getWebApplicationContext(FacesContext.getCurrentInstance()).getBean(name);
 }
Run Code Online (Sandbox Code Playgroud)

但是,FacesContextUtils.getWebApplicationContext(FacesContext.getCurrentInstance())返回null,因此调用getBean()它会抛出NullPointerException

我需要在任何地方定义任何东西吗?

EDITED

我需要从应用程序上下文而不是jsf bean获取bean

Boz*_*zho 6

FacesContext.getCurrentInstance()null如果您不在由...处理的请求中,则返回FacesServlet.确保您正在处理通过该servlet传递的请求.

更新:如果faces上下文不为null,则应用程序上下文可能为null的原因是没有名为的servlet上下文属性org.springframework.web.context.WebApplicationContext.ROOT.这意味着弹簧未正确初始化.确保你有弹簧ContextLoaderListener映射web.xml,或者DispatcherServlet