【发布时间】:2010-08-22 20:23:26
【问题描述】:
我在 Jboss 4.2.3.GA 上运行一个 Stripes Web 应用程序,并在我启动 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 次。知道问题可能是什么吗?谢谢。
【问题讨论】:
-
在您的
contextInitialized顶部放置一个基本的System.out.println,以确保您看到的是您认为您所看到的。顺便说一句,我已经看到了这种问题:将 Tomcat 连接到 NetBeans 以用于开发时的一个已知错误导致Tomcat double-launching the web app。
标签: java servlets jboss stripes