ServletContextListener在Tomcat 7中初始化并在中间销毁

时间:2014-09-30 12:41:55

标签: java tomcat

我在Tomcat 6环境中开发了一个Web应用程序。这个应用程序实现了一个像这样的ServletContextListener:

public  class AppListener implements ServletContextListener {
  private static final Log log = LogFactory.getLog("STLOG." + AppListener.class.getName());

 public void contextDestroyed(ServletContextEvent event){
  log.info("MyWebApp is finished.");
 }
 public void contextInitialized(ServletContextEvent event){
  log.info("MyWebApp is ready.");
 }
}

当MyWebApp在Tomcat 6中运行时,日志显示" MyWebApp已准备好。"当服务器启动并且" MyWebApp完成时。"当它被推倒时。 但令人担忧的是,当应用程序在Tomcat 7服务器中运行时,我会在启动时收到这两条消息。 在我注意到的任何其他方式中,应用程序在两个服务器中的工作方式相同,这很好。 任何人都可以告诉我为什么会出现差异,以及在我的应用生命周期中可能出现的影响?

1 个答案:

答案 0 :(得分:0)

您是否尝试过mywebapp/WEB-INF/web.xml在Tomcat7部署中提供version =“3.0属性?

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0" >

  <listener>
    <listener-class>com.myapp.AppListener</listener-class>
  </listener>

...rest, listeners, filters, servlets...

</web-app>