Я запускаю веб-приложение Stripes на Jboss 4.2.3.GA и пытаюсь вызвать метод при запуске JBoss. Я создал ServletContextListener примерно так:
public class TimerContextListener implements ServletContextListener {
@Inject
private TimerManager timerManager;
public void contextInitialized(ServletContextEvent servletcontextevent) {
((Injector) servletcontextevent.getServletContext().getAttribute(GuiceServletContextListener.KEY)).injectMembers(this);
timerManager.stopAllTimers();
timerManager.startTimer();
}
public void contextDestroyed(ServletContextEvent servletcontextevent) {
}
}
и добавил запись в web.xml примерно так:
<listener>
<listener-class>com.lawless.web.servletContextListeners.TimerContextListener</listener-class>
</listener>
, но contextInitialized () вызывается 3 раза, когда я запускаю свой сервер. Есть идеи, в чем проблема? Спасибо.
Хорошо, я разобрался. Его вызвали 3 раза, потому что у меня было 3 виртуальных хоста, определенных в моем jboss-web.xml. Не уверен, почему это вызывает такое поведение. Если кто-нибудь может объяснить причину, я был бы признателен.