Я работаю с сервером приложений Weblogib BEA 10.0.
Я хочу добавить StatelessSessionBean в ServletContextListener.
Все, что должен сделать этот компонент - запустить периодический таймер для задач очистки.
Мой проект разделен на 3 артефакта.
Сначала создается war-файл, содержащий ServletContextListener:
public class ContextListener implements ServletContextListener {
@EJB(mappedName = "ejb/cleanUpTimer")
private CleanUpTimer cleanUpTimer;
public void contextInitialized(ServletContextEvent event) {
cleanUpTimer.activateCleanUpTimer();
}
}
Второй артефакт - это общая библиотека (jar-файл), содержащая интерфейс EJB:
public interface CleanUpTimer {
public void activateCleanUpTimer();
}
Третий артефакт - это банка, содержащая StatelessSessionBean:
@Stateless(mappedName = "ejb/cleanUpTimer")
public class TimedCleanUpSLSB implements CleanUpTimer {
@Resource
private TimerService timerService;
public void activateCleanUpTimer() {
this.timerService.createTimer(timeout, timeout, "Clean Up Timer"); }
@Timeout
@TransactionAttribute(TransactionAttributeType.NEVER)
public void timedSessionCleanUp(Timer timer) {
// do something ...
}
}
При развертывании приложения Контейнер вводит «ноль» в ServletContextListener.
Может кто-нибудь помочь мне с этим вопросом?