菜鸟问题:为什么我的Tomcat5.5启动时,监听器会运行两次(如例),是高人一定要帮忙的?
yeno 2005-04-23 12:00:44 下面为Tomcat启动时显示的内容,但我的监听器里只配置了一次
2005-4-23 11:53:19 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2005-4-23 11:53:19 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 2031 ms
2005-4-23 11:53:20 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2005-4-23 11:53:20 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/5.5.8
2005-4-23 11:53:20 org.apache.catalina.core.StandardHost start
信息: XML validation disabled
2005-4-23 11:53:22 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(C:\Tomcat\webapps\ROOT\WEB-INF\lib\servlet.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
com.training5156.listener.ContextListener@1b17d49:contextInitialized():当前的环境是:Welcome to Tomcat
com.training5156.listener.ContextListener@1b17d49:contextInitialized():当前环境的WEB-INF的路径是:C:\Tomcat\webapps\ROOT\WEB-INF
com.training5156.listener.ContextListener@1b17d49:contextInitialized():开始初始化......
com.training5156.listener.ContextListener@1b17d49:contextInitialized():初始化事件工厂:UserEventFactory
2005-4-23 11:53:22 org.apache.catalina.startup.ContextConfig applicationWebConfig
信息: Missing application web.xml, using defaults only StandardEngine[Catalina].StandardHost[localhost].StandardContext[/training]
2005-4-23 11:53:23 org.apache.catalina.core.ApplicationContext log
信息: org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: [org.apache.webapp.balancer.RuleChain: [org.apache.webapp.balancer.rules.URLStringMatchRule: Target string: News / Redirect URL: http://www.cnn.com], [org.apache.webapp.balancer.rules.RequestParameterRule: Target param name: paramName / Target param value: paramValue / Redirect URL: http://www.yahoo.com], [org.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL: http://jakarta.apache.org]]
2005-4-23 11:53:23 org.apache.catalina.startup.ContextConfig applicationWebConfig
信息: Missing application web.xml, using defaults only StandardEngine[Catalina].StandardHost[localhost].StandardContext[/demo]
2005-4-23 11:53:24 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
2005-4-23 11:53:24 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
2005-4-23 11:53:24 org.apache.catalina.startup.ContextConfig applicationWebConfig
信息: Missing application web.xml, using defaults only StandardEngine[Catalina].StandardHost[localhost].StandardContext[/myweb]
2005-4-23 11:53:24 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(C:\Tomcat\webapps\ROOT\WEB-INF\lib\servlet.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
com.training5156.listener.ContextListener@1162212:contextInitialized():当前的环境是:Welcome to Tomcat
com.training5156.listener.ContextListener@1162212:contextInitialized():当前环境的WEB-INF的路径是:C:\Tomcat\webapps\ROOT\WEB-INF
com.training5156.listener.ContextListener@1162212:contextInitialized():开始初始化......
com.training5156.listener.ContextListener@1162212:contextInitialized():初始化事件工厂:UserEventFactory
2005-4-23 11:53:25 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
2005-4-23 11:53:25 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
2005-4-23 11:53:26 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2005-4-23 11:53:27 org.apache.jk.common.ChannelSocket init
信息: JK2: ajp13 listening on /0.0.0.0:8009
2005-4-23 11:53:27 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/188 config=null
2005-4-23 11:53:28 org.apache.catalina.storeconfig.StoreLoader load
信息: Find registry server-registry.xml at classpath resource
2005-4-23 11:53:28 org.apache.catalina.startup.Catalina start
信息: Server startup in 8765 ms
监听器配置如下:
package com.training5156.listener;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContext;
import com.training5156.frame.*;
import com.training5156.util.*;
public class ContextListener implements ServletContextListener
{
public ContextListener()
{
}
public void contextInitialized(ServletContextEvent sce)
{
ServletContext sc =sce.getServletContext();
Debug.log(this, "contextInitialized()", "当前的环境是:" + sc.getServletContextName());
Debug.log(this, "contextInitialized()", "当前环境的WEB-INF的路径是:" + sc.getRealPath("WEB-INF"));
Debug.log(this, "contextInitialized()", "开始初始化......");
//long beginTime = new java.util.Date().getTime();
//初始化事件工厂
Debug.log(this, "contextInitialized()", "初始化事件工厂:UserEventFactory");
AbstractEventFactory ef = AbstractEventFactory.getInstance("User");
ef.init(sc.getRealPath("WEB-INF"));
}
public void contextDestroyed(ServletContextEvent sce)
{
ServletContext sc =sce.getServletContext();
//从ServletContext 移除列表工厂
sc.removeAttribute("ListFactory");
Debug.log(this, "contextDestroyed()", "销毁列表工厂ListFactory。");
//从ServletContext 移除列表Bean工厂
sc.removeAttribute("ListBeanFactory");
Debug.log(this, "contextDestroyed()", "销毁列表Bean工厂ListBeanFactory。");
}
}
Web.xml文件有关监听器的配置如下:
<listener>
<listener-class>com.training5156.listener.ContextListener</listener-class>
</listener>