2014-06-12 13 views
6

Sto seguendo il tutorial Using the Timer Service per creare un'esecuzione pianificata semplice. Provando l'approccio automatico e usando WildFly 8.1.0 Final per questo.Java EE 7 Automatic Timer (EJB Timer) non funziona per WildFly 8.1.0

Session Bean

@Singleton 
@Startup 
public class HelloJob { 

    private static final Logger logger = Logger.getLogger(HelloJob.class); 

    public HelloJob() { 
     logger.error(">>> Hello Job Created."); 
    } 

    @Schedule(second="*") 
    public void sayHello() { 
     logger.error(">>> Server Hello!"); 
    } 

} 

Sulla distribuire la classe è correttamente un'istanza di stampare il messaggio >>> Hello Job Created., ma il metodo sayHello() non viene mai chiamato.

Secondo il tutorial, lo @Schedule(second="*") significa che deve essere eseguito ogni secondo.

L'impostazione di un attributo su un asterisco (*) rappresenta tutti i valori consentiti per l'attributo .

Solo i bean di sessione stateful non sono consentiti per i timer e sto utilizzando un singleton, che viene anche utilizzato nell'esempio.

Il servizio timer del contenitore bean enterprise vi permette di pianificare cronometrato le notifiche per tutti i tipi di bean enterprise ad eccezione per session bean stateful.

risposta

10

Utilizzare @Schedule(second="*", minute="*", hour="*").

i valori predefiniti per ora e minuti sono "0", che può essere piuttosto irritante ed efficacemente impone di impostarli.

+0

Ha funzionato come un fascino. – BonanzaOne