2012-12-21 23 views
6

Mam następujący kod do uruchomienia na Apache-tomee, używam eclipse do kodowania i chcę uruchomić moją prostą pracę harmonogramu za pomocą adnotacji @Schedule przy uruchomieniu aplikacji.EJB-3.1 @ Uruchomienie i @ Anilinguowanie w Apache Tomee do wykonania timera

@Startup 
@Singleton 
public class ScheduleEJB { 
    private static int count = 0; 
    @Schedule(second="*/10", minute="*", hour="*", info="MyTimer") 
    public void execute() { 
     System.out.println("its running count..."+count); 
     count++; 
    } 
} 

Kiedy wdrożony ten kod na Tomee, to po mnie następujący komunikat i nie można uruchomić moją metodę harmonogram execute() automatycznie przy starcie, gdzie jak ten kod działa poprawnie w GlassFish, ale ja nie zamierzam używać go albo glassfish z jboss.

21 grudnia 2012 09:59:45 org.quartz.impl.StdSchedulerFactory instancję
INFO: Użycie domyślnego implementację ThreadExecutor
21 grudnia 2012 09:59:45 org.quartz.core. SchedulerSignalerImpl
INFO: Zainicjowany Harmonogram sygnalizator typu: klasa org.quartz.core.SchedulerSignalerImpl
21 grudnia 2012 09:59:45 org.quartz.core.QuartzScheduler
INFO: Quartz Scheduler v.2.1.6 stworzona .
Dec 21, 2012 9:59:45 AM org.quartz.simpl.RAMJobStore initialize
INFO: Zainicjowano RAMJobStore.
21 grudnia 2012 09:59:45 org.quartz.core.QuartzScheduler zainicjować
INFO: Harmonogram meta-dane: Quartz Scheduler (v2.1.6) 'OpenEJB-TimerService-Scheduler' z instanceid 'OpenEJB'
Klasa programu planującego: "org.quartz.core.QuartzScheduler" - działa lokalnie.
NIE ROZPOCZĘTA.
Obecnie w trybie gotowości.
Liczba wykonanych zadań: 0
Korzystanie z puli wątków "org.apache.openejb.core.timer.DefaultTimerThreadPoolAdapter" - z 0 wątkami.
Korzystanie z job-store "org.quartz.simpl.RAMJobStore" - które nie obsługuje funkcji trwałości. i nie jest skupiony.

21 grudnia 2012 09:59:45 org.quartz.impl.StdSchedulerFactory wystąpienia
INFO kwarcowy planującego „OpenEJB-TimerService-Harmonogram” inicjowane z zewnętrznego źródła przykład właściwości.
21 grudnia 2012 09:59:45 org.quartz.impl.StdSchedulerFactory instancję
INFO: Quartz wersja harmonogramu: 2.1.6
21 grudnia 2012 09:59:45 org.quartz.core.QuartzScheduler start
INFO: Scheduler OpenEJB-TimerService-Scheduler _ $ _ OpenEJB rozpoczęty.
21 grudnia 2012 09:59:45 org.apache.openejb.assembler.classic.Assembler createApplication
INFO: Utworzono EJB (wdrażanie-id = ScheduleEJB, EJB-name = ScheduleEJB, pojemnik = Moja Singleton Container)
21 grudnia 2012 09:59:45 org.apache.openejb.assembler.classic.Assembler createApplication
INFORMACJE: kroki EJB (wdrażanie-id = ScheduleEJB, EJB nazwa = ScheduleEJB, pojemnik = mój Singleton pojemnika)

Odpowiedz

1

Czy już obejrzałeś stronę przykładów TomEE? Istnieje podobny przykład, który faktycznie działa.

http://openejb.apache.org/examples-trunk/schedule-methods/README.html

Być może można spróbować i sprawdzić, co jest w rzeczywistości różni się z naszą.

+1

Tak, sprawdziłem to samo, ale mój problem polegał na tym, że nie można go kodować, ale w jaki sposób mogę uruchomić ten kod w tomee i, co ciekawe, znalazłem rozwiązanie, że jeśli uruchomię mój projekt poprzez wdrożenie bezpośrednio z zaćmienia na działającym serwerze tomee, nie uruchomi on timera, ale kiedy po prostu wdrożyłem aplikację i zrestartuję serwer, po prostu uruchom mój timer, więc nie jestem w stanie ustalić przyczyny. – rykhan

0

Twój kod działa poprawnie na ostatnim wydaniu TomEE. Jaka była twoja wersja?

+0

to był apache-tomee-1.5.1-plus, tak działa i działa dobrze teraz, ale dla których muszę ponownie uruchomić tomee po wdrożeniu mojego kodu ... powód, dla którego nie jestem w stanie wymyślić – rykhan