Inside a
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
I wanted to get the session using
FacesContext.getCurrentInstance().getExternalContext().getSession(false);
But I realised that FacesContext.getCurrentInstance()
returns null
. I know that I can get the session using ((HttpServletRequest) req).getSession(false)
instead, but my concrete question is: why is the faces context null
in the doFilter()
method?
I'm using MyFaces 1.1.
FacesContext
as an object is tied directly to the JSF request processing lifecycle and as a result is only available during a standard JSF (user-driven) request-response process. The actual object itself is stored in a thread that runs during the processing of a JSF request, vis-a-vis a ManagedBean.
But. BalusC has outlined some steps to get your hands on the object outside of the processing lifecycle here. :)