@Startup不在JBOSS 7中工作

时间:2018-04-05 07:30:47

标签: java-ee jboss cdi java-ee-7

我想强制在容器启动时急切地创建一个单独的bean。我将它与@PostContruct(用于某些初始化逻辑)和@PreDestroy(用于一些清理)相结合。但无论我尝试过什么,它都无法在我的JBOSS 7 EAP(JEE 7)中使用。

import javax.ejb.Singleton;
import javax.ejb.Startup;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
@Startup
@Singleton
@ConcurrencyManagement(ConcurrencyManagementType.BEAN)
public class ProvisioningDataForApplicationLifecycle {
    @PostConstruct
    private void init() {
        // when app is deployed
        LOG.info("called init")
    }

    @PreDestroy
    private void cleanUp() {
        // when app is undeployed
        LOG.info("called destroy")
    }
}

public void someOtherClass(){
   @Inject
   @EJB
   private ProvisioningDataForApplicationLifecycle pdal;
   ...
}

我搜索了很多123 ......但没有任何帮助。我唯一能做的就是使用

public void initEnvironment(@Observes @Initialized(@ApplicationScoped.class))

然而@Startup应该正常工作。所以不知道为什么不呢?

更新

我想我意识到了这个问题:该类是(eclipse)实用程序项目(facet)的一部分,它作为lib文件夹下的jar文件添加到最终的EAR中。所以它不是一个EJB。因此,@Startup@Singleton注释可能无效。或者是否有可能使其适用于非EJB类?

0 个答案:

没有答案