小编avi*_*bol的帖子

如何解决Singleton EJB初始化失败的问题

我有一个Java EE项目,该项目在Eclipse Mars中通过EJB注入在Glassfish 4.1容器中执行。我有一个Singleton EJB,可以在应用程序启动时初始化或更新数据库

@Startup
@Singleton
public class DatabaseUpdater {

    private static final Logger LOG = Logger.getLogger(DatabaseUpdater.class.getName());

   /**
    * Initializes database process
    */
    @PostConstruct
    public void initialize(UserVO userVO) {
        // ... initialize code
    }
}
Run Code Online (Sandbox Code Playgroud)

该项目在Eclipse Mars中使用“ 在服务器上调试”选项执行,并且运行良好。但是昨天我只是尝试执行此操作以启动项目,并且部署过程在Eclipse中失败了。出现此异常堆栈:

2016-02-21T11:03:52.001-0500|Grave: Exception during lifecycle processing
javax.ejb.EJBException: javax.ejb.CreateException: Initialization failed for Singleton DatabaseUpdater
    at com.sun.ejb.containers.AbstractSingletonContainer$SingletonContextFactory.create(AbstractSingletonContainer.java:649)
    at com.sun.ejb.containers.AbstractSingletonContainer.instantiateSingletonInstance(AbstractSingletonContainer.java:389)
    at org.glassfish.ejb.startup.SingletonLifeCycleManager.initializeSingleton(SingletonLifeCycleManager.java:219)
    at org.glassfish.ejb.startup.SingletonLifeCycleManager.initializeSingleton(SingletonLifeCycleManager.java:180)
    at org.glassfish.ejb.startup.SingletonLifeCycleManager.doStartup(SingletonLifeCycleManager.java:158)
    at org.glassfish.ejb.startup.EjbApplication.start(EjbApplication.java:166)
    at org.glassfish.internal.data.EngineRef.start(EngineRef.java:122)
    at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:291)
    at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:352)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:500)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:539)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:535) …
Run Code Online (Sandbox Code Playgroud)

java singleton ejb startup java-ee

3
推荐指数
1
解决办法
7813
查看次数

标签 统计

ejb ×1

java ×1

java-ee ×1

singleton ×1

startup ×1