Webアプリケーションには、JSF1.2とFaceletsを使用します。
問題は、シングルトンパターンを介して初期化を行うことです。これは、データファイルを読み込むため(データベースを使用していないため)、約5〜15秒かかります。これは、最初のユーザーが対応するWebページを参照したときに発生します(2番目以降のユーザーにはこの遅延はありません)。
このシングルトンをデプロイ直後に初期化してもらいたいです。これどうやってするの?アプリケーションBeanを追加しようとしましたが、呼び出されません。また、次のようにサーブレットを追加しようとしました。
<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やfaces-config.xmlで必要な変更を含む例がいいでしょう!