Для веб-приложения я использую JSF 1.2 и Facelets.
Проблема в том, что теперь мы выполняем инициализацию с помощью одноэлементного шаблона, и это занимает около 5-15 секунд , поскольку он считывает файлы данных (мы не используем базу данных). Это происходит, когда первый пользователь просматривает соответствующую веб-страницу (2-й и другие пользователи не имеют этой задержки).
Я хотел бы инициализировать этот синглтон сразу после развертывания. Как я могу это сделать? Я пытался добавить бин приложения, но он не вызывается. Я также попытался добавить сервлет следующим образом:
<servlet>
<description>MyApplicationContextListener Servlet</description>
<display-name>MyApplicationContextListener Servlet</display-name>
<servlet-name>MyApplicationContextListener</servlet-name>
<servlet-class>mydomain.beans.MyApplicationContextListener</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<listener>
<listener-class>mydomain.beans.MyApplicationContextListener</listener-class>
</listener>
со следующим кодом:
package mydomain.beans;
import javax.servlet.ServletContextEvent;
public class MyApplicationContextListener {
public void contextInitialized(ServletContextEvent event) {
System.out.println("MyApplicationContextListener.contextInitialized started");
}
public void contextDestroyed(ServletContextEvent event) {
System.out.println("MyApplicationContextListener.contextInitialized stopped");
}
}
Было бы неплохо привести пример, включающий изменения, необходимые в web.xml и / или face-config.xml!