Инициазация в JSF
А куда грамотно можно вставить функцию инициализации для JSF-приложения? Мне нужно при старте считывать из файла конфигурацию, а для этого нужно обратиться к FacesContext.getCurrentInstance().getExt ernalContext().getResourceAsStream("/WEB-I NF/myconf.xml"). Вопрос в том, когда это можно сделать. Пока придумал 2 варианта:
1. Прописать в faces-config новый managed-bean со scope'ом равным application:
Но, как оказалось, бин инициализируется не при старте, а при первом обращении. То есть, нужно ещё обратиться к нему на первой странице приложения, а это неудобно хотя бы из-за того, что первой страницы может и не быть.
2. Инициализировать приложение в дополнительном сервлете. Например, так:
web.xml
По идее, InitServlet должен загружаться после инициализации FacesServlet, однако FacesContext.getCurrentInstance(), вызванный в сервлете инициализации, почему-то возвращает null.
Как это лечится?
Или есть в JSF'е какой-то другой стандартный способ считывать конфиги?
1. Прописать в faces-config новый managed-bean со scope'ом равным application:
< managed-bean>
< managed-bean-name>initBean< /managed-bean-name>
< managed-bean-class>beans.InitBean< /managed-bean-class>
< managed-bean-scope>application< /managed-bean-scope>
< /managed-bean>
Но, как оказалось, бин инициализируется не при старте, а при первом обращении. То есть, нужно ещё обратиться к нему на первой странице приложения, а это неудобно хотя бы из-за того, что первой страницы может и не быть.
2. Инициализировать приложение в дополнительном сервлете. Например, так:
web.xml
< servlet>
< servlet-name>Faces Servlet< /servlet-name>
< servlet-class>javax.faces.webapp.FacesServlet< /servlet-class>
< load-on-startup>1< /load-on-startup>
< /servlet>
< servlet>
< servlet-name>Init Servlet< /servlet-name>
< servlet-class>servlets.InitServlet< /servlet-class>
< load-on-startup>2< /load-on-startup>
< /servlet>
По идее, InitServlet должен загружаться после инициализации FacesServlet, однако FacesContext.getCurrentInstance(), вызванный в сервлете инициализации, почему-то возвращает null.
Как это лечится?
Или есть в JSF'е какой-то другой стандартный способ считывать конфиги?
