我在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服务器中运行时,我会在启动时收到这两条消息。 在我注意到的任何其他方式中,应用程序在两个服务器中的工作方式相同,这很好。 任何人都可以告诉我为什么会出现差异,以及在我的应用生命周期中可能出现的影响?
答案 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>