2015-12-28 2 views
0

Я пытаюсь создать простую работу таймера с ejb3.1, чтобы выполнить некоторую очистку. Мой боб выглядит следующим образом:Метод, аннотированный с @Schedule, не запланирован

@Singleton 
@Startup 
public class ExpirationSchedulerBean { 

    private final Logger logger = Logger.getLogger(ExpirationSchedulerBean.class); 

    @Schedule(second = "*/5", minute = "*", hour = "*", persistent = false) 
    public void cleanup() { 
     logger.warn("Schedule Timer fired - " + new Date()); 
    } 

    @PostConstruct 
    public void startup() { 
     logger.warn("I AM IN STARTUP()"); 
    } 
} 

Мои файлы журнала показывают, что нет ничего плохого в регистраторе, а «Я в STARTUP()» печатается нормально. Однако запланированный метод никогда не запускается.

Я попытался создать Timer вместо этого, используя:

@Resource 
private TimerService timerService; 

@PostConstruct 
public void startup() { 
    logger.warn("I AM IN STARTUP()"); 
    timerService.createIntervalTimer(0, 5000, new TimerConfig()); 
} 

@Timeout 
public void sayHello() { 
    logger.warn("Timeout from timer "+new Date()); 
} 

Но сервер, кажется, не нравится, что тоже, я получаю JBAS014239: Служба таймера отключена. Добавьте его в раздел ejb конфигурации сервера, чтобы включить его. Как получить метод, отмеченный @Schedule, для запуска каждые пять секунд?

EDIT: Я использую JBoss 6,4

+0

Я думаю, что это не разрешено в вашем профиле. По крайней мере, для v7 он работал для меня при загрузке дистрибутива «все» и запускал сервер, используя: './standalone.sh -server-config = standalone-preview.xml' – spa

+0

@spa Хм, это похоже на правду ! Однако, я думаю, я должен был бы просто включить его в свой standalone.xml? – Pphoenix

+0

Да, конечно - это просто все. Это не то, что вы хотите большую часть времени. Но вы можете найти эту конфигурацию для таймера. – spa

ответ

0

Проблема, как @spa упоминалось, что моя конфигурация не хватало необходимых зависимостей. @Schedule -annotation использует таймер-сервис, так что мне нужно добавить следующее к моей standalone.xml:

<timer-service thread-pool-name="default"> 
    <data-store path="timer-service-data" relative-to="jboss.server.data.dir"/> 
</timer-service> 

Без зависимости он потерпел неудачу молча делает проблему трудно найти.

Смежные вопросы