我有一个ServletContextListener
我正在JSF 2.3
容器上运行Tomcat 9
个应用程序。一切都很好但是我需要在创建上下文时访问FacesContext
。
由于我没有使用部署描述符,所以我没有注册FacesServlet
配置,它似乎由容器自动注册,原因如下:
以下调用将返回NULL
,并且如Java Doc中所述,当已经创建了同名的Servlet时,它将返回NULL
。
sce.getServletContext().addServlet("FacesServlet", FacesServlet.class)
以下调用确实返回一个值:
ServletRegistration facesServlet = sce.getServletContext().getServletRegistration("FacesServlet");
但是,由于我没有进行任何配置,因此我没有设置loadOnStatup
参数,因此它自动设置为-1
。
现在是一个负数,这意味着这个Servlet很懒,所以通过调用FacesContext.getCurrentInstance()
我收到NULL
,因为似乎Servlet还没有初始化。
现在,当然,我可以通过部署描述符手动注册Servlet,但我想避免这种情况(仅仅因为我希望尽可能多地受益于自动配置)。
我没有找到以编程方式更改loadOnStatup
值的方法,有没有办法初始化此Servlet?