没有调用启动bean

Rog*_*ach 6 ejb java-ee java-ee-6 ejb-3.1

我在NetBeans中创建了一个Java Web应用程序项目,并在其中创建了一个启动bean:

package malibu.util;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.ejb.LocalBean;

@Stateless
@LocalBean
@javax.ejb.Startup
public class Startup {
    @EJB
    private ProviderEJB providerEJB;

    @PostConstruct
    public void onStartup() {
        System.err.println("Initialization success.");
    }
}
Run Code Online (Sandbox Code Playgroud)

但是在部署应用程序后没有调用代码.是什么导致这个?

Tom*_*icz 11

尝试以下注释集:

@Singleton
@Startup
public class Startup {
    @EJB
    private ProviderEJB providerEJB;

    @PostConstruct
    public void onStartup() {
        System.err.println("Initialization success.");
    }
}
Run Code Online (Sandbox Code Playgroud)

您将在此处本书(第2章)中找到更多详细信息.


Arj*_*jms 6

Startup注释用于Singleton bean,而不是无状态bean.请参阅javadoc.

此外,在这种情况下不需要@LocalBean.这声明您需要一个额外的无界面视图,但只有在bean实现远程或本地业务接口时才需要这样做.如果省略它,默认情况下会得到无界面视图.