2014-01-27 7 views
0

В настоящее время у меня есть EJB, у которого есть расписание @, которое выполняется каждые 5 минут, но я запускаю только после инициализации ejb.EJB Расписание автоматического запуска на weblogic

Вопрос заключается в том, можно ли запустить таймер после развертывания и не дожидаться, пока не начнется вызов в EJB.

Вот мой код:

@Remote(ServiceRemote.class) 
@Stateless(mappedName = "ejb/ServiceEJBSL") 
public class ServiceBean implements ServiceRemote { 
@Schedule(second="*", minute="*/5", hour="*", dayOfWeek="0-6") 
public void autmaticTimer() throws Exception, RemoteException{ 
System.out.println("do something"); 
} 
} 

Я сделал это в glasfish сервер, но это, кажется, не работает точно так же.

Заранее спасибо.

ответ

0

Вам нужно GlassFish v3. +, потому что эта функция была добавлена ​​в EJB 3,1

Автоматические таймеры создаются в контейнере EJB, когда предприятие боб, который содержит методы аннотированные с @Schedule или @Schedules аннотации.

@Schedule(minute="*/5", hour="*") 
public void automaticTimer() throws Exception, RemoteException{ 
    System.out.println("do something"); 
} 

Добавление

Попробуйте добавить

@Schedule(minute="*/5", hour="*", persistent=false) 

Поскольку постоянные таймеры не воссоздан, если уже существующие, когда keepstate установлен в true.

См

+0

Здравствуйте Алексей, спасибо 4 ответа, им с помощью 11g сервера WebLogic ... делает эту версию поддержки EJB 3.1? – Mariah

+0

Привет, Мария! 'WebLogic 11G' не является сервером приложений Java EE 6', это реализация' Java EE 5'. Таким образом, 'EJB 3.1' не поддерживается. –

+0

Большое спасибо Alexey, еще один вопрос, я использую Glassfish 3.0.1 (сборка 22) с другим проектом, и этот код работает отлично, поэтому, знаете ли вы, какая спецификация Java ee использует для использования в стеклянной фишке? Большое спасибо за вашу помощь! – Mariah

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