Zeitgesteuertes Ereignis in einer dynamic web module Anwendung (eclipse)

metalfan

Aktives Mitglied
Hallo,


in einer JSF 2 Anwendung hätte ich gerne jede x Minuten eine Methode aufgerufen ohne das dies den Glassfish Server zum erliegen bringt.

Und siehe da, es gibt eine Lösung mit Beispiel:
www.hascode.com/2012/06/task-scheduling-in-java-ee-6-on-glassfish-using-the-timer-service/

1) Eclipse weigert sich unter "Properties -> Project Facet" EJB und dynamic web module gleichzeitig zu aktivieren...
Im Beispiel kommt ja @EJB vor aber es ist auch von glassfish die Rede und irgendwie verbinde ich glassfish mit "Webseiten". Liege ich da Falsch?


2) Also erstmal habe ich die @EJB Zeile entfernt und es so umgewandelt:
Code:
import javax.ejb.Schedule;
import javax.ejb.Singleton;

@Singleton
public class TimerService {
   

    @Schedule(second="*/1", minute="*",hour="*", persistent=false)
    public void doWork(){
        System.out.println("timer: ");
    }
}

Ein Starten des Projektes gibt die Meldung:
Code:
An error has occurred. See error log for more details.
org.eclipse.jst.javaee.ejb.internal.impl.EJBJarImpl cannot be cast to org.eclipse.jst.javaee.web.WebApp

aus.
Das Projekt wurde als Dynamic Web Module erstellt....Warum will Java casten?
 
Heißt das, das Project ist ein web module?

meines wissens nach funktioniert dann auch ein ejb. Die Annotationen werden von den entsprechenden Container im Server interpretiert. Das web-modul wird in den servlet-container geladen.
 

Zurück
Oben