首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >焊接中的启动类

焊接中的启动类
EN

Stack Overflow用户
提问于 2013-05-07 07:55:27
回答 1查看 3.8K关注 0票数 2

我试图用@Singleton和@Startup注释(运行在tomcat 7上)为我的应用程序定义一个在Weld CDI中的启动类,但是我的PostConstruct方法从未被调用。

这是我的创业课:

代码语言:javascript
复制
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);
    }
  }

}

我尝试了我在这两篇文章中找到的提示-- 带焊缝启动POJO启动EJB不工作,但都没有帮助。

EN

回答 1

Stack Overflow用户

发布于 2014-03-06 12:03:54

您不能在can上使用@Startup或@javax.ejb.Singleton注释:这些注释是针对EJB的,而EJB的注释在Tomcat (普通的)上不起作用。如果希望在Tomcat上运行EE应用程序,请查看TomEE项目。

但是,有一个AfterDeploymentValidation事件是在部署完所有东西之后抛出的。您可以编写一个观察者方法来处理该事件,如下文所示:

  • 急切的CDI bean
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16413997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档