1

我在部署时遇到问题JBoss 6。我的应用程序包含一个无状态 EJB,其中一个方法用@Schedule(hour="1")注释标记。这种方法使用另一个由@EJB 注解注入的无状态EJB。

@Stateless
public class AuditRecordCleanerBean implements AuditRecordCleanerLocal
{
@EJB
private RecordManager recordManager;

@Schedule(hour="1")
public void moveRecordsToHistoricTable()
{
recordManager.moveRecords();
...
}
}

因为定时器在 JBoss 中是持久的,所以当我重新启动应用程序服务器时,有时可能会在 EJB RecordManager 尚未部署时触发定时器,从而导致 NameNotFoundException。

在 server.log 中,我发现了以下警告:

WARN  [org.jboss.ejb3.TimerServiceContainer] (Thread-2) EJBTHREE-2193: using deprecated TimerServiceFactory for restoring timers

可能是这个问题吗?如何在应用程序完全部署后延迟第一个计时器的执行?

最好的问候,法比奥

4

0 回答 0