2010-08-09 1 views
1

Я пытаюсь установить таймер для Stateless EJB в Glassfish 2.1:Служба таймера Glassfish: что я делаю неправильно?

@Stateless(mappedName = "ServiceEJB") 
public class ServiceEJB implements ServiceEJBRemote { 

    // other methods ... 

    // defining the timer 
    @Schedule(second="*/15", minute="*", hour="*") 
    public void test(){ 
    System.out.println("++++++++ timer!!! ++++++++++++++++++++"); 
    } 

} 

Из того, что я читал, все, что мне нужно сделать, это развернуть приложение, и это должно работать. Я ожидал увидеть в журнале распечатанный текст из теста метода (каждые 15 секунд). Есть ли еще какие-то шаги, которые я должен предпринять, чтобы это работало?

Спасибо!

+0

Можете ли вы создать статический инициализатор, чтобы подтвердить, что класс действительно загружается? например static {System.out.println ("LOADED ServiceEJB class");} –

+0

Вы уверены, что используете правильную версию EJB? Аннотации '@ Schedule' являются новыми с EJB3.1, тогда как Glassfish 2.1 поставляется с EJB3.0. – musiKk

+0

@jowierun - класс загружается как ожидалось @musikk - Я попробую с GF3.0.1 и вернусь сюда. – Bogdan

ответ

1

После моего комментария на вопрос:

@Schedule аннотаций является особенностью EJB 3.1. Glassfish 2.1 использует EJB 3, тогда как Glassfish 3 использует EJB 3.1 и поэтому лучше подходит.