@Singleton, @Startup, @PostConstruct não funciona no EJB3.1 e no Glassfishv3.0.1

Eu tenho um problema com essa configuração e nem consigo ver os logs.

Este é o meu @Singleton @Startup EJB:

 @Singleton @Startup @DependsOn("SchedulerEJB") public class SchedulerStartUp { private static Logger log = Logger.getLogger(SchedulerStartUp.class); @EJB SchedulerEJB schedEJB; @PostConstruct public void atStartup() { log.info("startUp") System.out.println("startUp"); schedEJB.cancelTimer("EBlastScheduler"); schedEJB.createTimer("*/1", "*", "*"); } } 

O SchedulerEJB :

  @Stateless public class SchedulerEJB { @Resource TimerService timerService; public cancelTimer(String timerInfo){/*...*/} public createTimer(String sec, String min, String hour) {/*...*/} @Timeout public void execute(Timer timer) {/*...*/} } 

Maven pom:

  //Been Using Glassfishv3.0.1 and EJB3.1 with a dependency of:  javax javaee-api 6.0 provided  

Você tem um tipo de bean inválido como um atributo de @DependsOn . DependsOn é para expressar dependência entre dois beans de session Singleton, não entre Singleton e Stateless. Você deve alterar o SchedulerEJB para ser Singleton ou remover a dependência.

Se você decidir alterar o SchedulerEJB para o Singleton, o @DepensOn também não será necessário, porque (da especificação EJB 3.1):

Observe que, se um Singleton precisar invocar outro Singleton de seu método PostConstruct, nenhum metadado de pedido explícito será necessário. Nesse caso, o primeiro Singleton usaria meramente uma referência ejb para invocar o Singleton alvo. Lá, a aquisição da referência ejb (por meio de injeção ou pesquisa) não implica necessariamente na criação real da instância do bean Singleton correspondente.