JSF 1.2 と Servlets 2.3 と Seam 2.2.0 を使用する JSF アプリケーションがあります。アプリケーションを閉じるたびに、一種のバックアップを実行したいと考えています。次のように ServletContextListener を使用してみました。
public class ApplicationStartupAction implements ServletContextListener {
@In
FormActionImpl formAction;
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("Context destroyed");
formAction.migrateForms();
}
public void contextInitialized(ServletContextEvent arg0) {
//Do nothing
System.out.println("Startup");
}
}
FormActionImpl クラスを使用したかったのは、JPA ハンドラーとデータベースにアクセスできるため、データベースにアクセスする必要があるためです。これは、「forAction.migrateForms();」の行では機能しません (nullpointerexception が発生します)。私の最善の推測は、シャットダウンのこの段階でこれらのクラスが既に破棄されているため、インジェクションを使用できないということですか?
シャットダウン中にマネージド Bean にアクセスする方法はありますか? または、他の方法で JPA を使用しますか?