EJB似乎被懶惰地加載 - 無論何時訪問。在啓動時(在JBoss上)啓動/自動加載EJB /加載EJB
但是,我想要對它們進行熱切初始化 - 即每當容器啓動時。這是如何實現的(特別是在JBoss中)
This topic給出了一些提示,但並不令人滿意。
EJB似乎被懶惰地加載 - 無論何時訪問。在啓動時(在JBoss上)啓動/自動加載EJB /加載EJB
但是,我想要對它們進行熱切初始化 - 即每當容器啓動時。這是如何實現的(特別是在JBoss中)
This topic給出了一些提示,但並不令人滿意。
由於EJB 3.1,單豆可以通知模塊啓動和停止:
@Singleton
@Startup
public class StartupBean {
@PostConstruct
private void postConstruct() { /* ... */ }
@PreDestroy
private void preDestroy() { /* ... */ }
}
此前EJB 3.1,沒有標準,EJB,唯一的解決辦法。我建議在您的EAR中添加一個WAR並使用servlet-context-listener。
據亞當邊的真實世界的Java EE模式 - 反思最佳實踐(見summary of the patterns)和服務啓動模式,這的確是bkail表明
我發現我的應用程序在GlassFish 3.1中,@Singleton @Startup EJB得到了一個@PersistenceContext EntityManager被關閉。我的解決方法是在該EJB中有一個計時器,該計時器在2秒後執行。 (杜!) – 2011-04-21 21:19:30
這聽起來像是一個錯誤,我會建議報告它。 – 2011-04-21 23:16:42