Начальный бин не называется - PullRequest
6 голосов
/ 25 июля 2011

Я создал проект веб-приложения Java в NetBeans и создал в нем запускающий компонент:

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.");
    }
}

Но код не вызывается после развертывания приложения.Что может вызвать это?

Ответы [ 3 ]

11 голосов
/ 25 июля 2011

Попробуйте следующий набор аннотаций:

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

    @PostConstruct
    public void onStartup() {
        System.err.println("Initialization success.");
    }
}

Вы найдете более подробную информацию здесь и в этой книге (глава 2).

6 голосов
/ 25 июля 2011

Аннотация для запуска предназначена для использования с компонентами Singleton, а не с компонентами без сохранения состояния. См. Javadoc .

Кроме того, @LocalBean в этом случае не требуется. Это объявляет, что вам нужно дополнительное представление без интерфейса, но это необходимо, только если компонент реализует удаленный или локальный бизнес-интерфейс. Если вы пропустите это, вы получите представление без интерфейса по умолчанию.

0 голосов
/ 05 августа 2014

http://docs.oracle.com/javaee/6/api/javax/ejb/Startup.html

Отметьте компонент singleton для быстрой инициализации во время последовательности запуска приложения.

...