2
我想在我的應用程序中使用@Singleton和@Startup註解(在tomcat 7上運行)爲Weld CDI定義啓動類,但是我的PostConstruct方法從未被調用過。Weld中的啓動類
這裏是我的啓動類:
import java.util.List;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.ejb.Startup;
import javax.inject.Inject;
import javax.ejb.Singleton;
import javax.persistence.EntityManager;
import se.raindance.squid.core.domain.SquidSettings;
@Singleton
@Startup
public class InitSquid {
@Inject
private Logger log;
@Inject
EntityManager entityManager;
@PostConstruct
public void init() {
System.out.println("startup!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! InitSquid");
// Init Rainlets
InitRainlets initRainlets = new InitRainlets(entityManager);
initRainlets.init();
initSquidSettings();
}
private void initSquidSettings() {
List<SquidSettings> settingsList = (List<SquidSettings>) entityManager
.createQuery(
"select squidsettings from SquidSettings squidsettings")
.getResultList();
if (settingsList.size() == 0) {
log.info("No SquidSettings entity exists in system, creating one");
SquidSettings settings = new SquidSettings();
settings.setSubledgerRestResourceURI("http://localhost:8080/subledger-webapp/resteasy/");
entityManager.persist(settings);
}
}
}
我想我在這兩個職位 Startup POJO with WELD和Startup EJB doesn't work發現但也幫助
能否請您發表您的'的Java class'的'import'部分? – 2013-05-07 08:24:48
我更新了所有導入的java類 – Yashar 2013-05-07 09:05:31
Pease嘗試刪除'javax.ejb.Startup'和'javax.ejb.Singleton'並僅使用'javax.inject.Singleton'。請不要混合使用'EJB'和'CDI'。 – 2013-05-07 09:15:03