菜鸟问题:为什么我的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>
...全文
443 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeno 2005-04-28
  • 打赏
  • 举报
回复
结贴了,谢谢各位!
yeno 2005-04-27
  • 打赏
  • 举报
回复
对了,我的站点放在ROOT下面,是不是根目录下的就不需要配置xml文件?
yeno 2005-04-27
  • 打赏
  • 举报
回复
被楼上的说中了,这是怎么回事呢?

我没在server.xml里面配置站点,那就应该在conf/catalina/localhost/站点.xml里面配置呀
飞行的兔子 2005-04-26
  • 打赏
  • 举报
回复
如果配置正确,应该不会有这种状况的啊!
看看conf/catalina/localhost下有没有对应的xml文件,有的话删除再看看!
yeno 2005-04-26
  • 打赏
  • 举报
回复
谢谢 discolt(枫)

我有空试试你的方法
yeno 2005-04-25
  • 打赏
  • 举报
回复
是这样的,我自己写了一个MVC,用DOM读XML文件的,通过监听器加载系统基本配置信息并实时监听系统运行的状态,通过WEB.XML加载控制器,所有操作全部通过统一控制器接口分发请求至相应的Bean进行事物处理,将处理结果返回给相应的JSP页面

但系统启动的时候,明显监听信息被打印了两次,所以想想应该是配置出了问题,查了半天,没找出原因,郁闷中……
discolt 2005-04-25
  • 打赏
  • 举报
回复
和环境有关系,凭空很难找到错误的地方。建议重装tomcat试试
edward0716 2005-04-25
  • 打赏
  • 举报
回复
我启动的进程列表里也有两个tomcat service
以前用低版本的没有这个问题
奇怪
yzh315 2005-04-25
  • 打赏
  • 举报
回复
应该是你的tomcat里面的信息配置错误,你的这个服务[/myweb]配置信息没有错
yeno 2005-04-25
  • 打赏
  • 举报
回复
谢谢呆鸟大侠,这个问题郁闷了好久,一直解决不了,我再重新配置一次看怎么样
yeno 2005-04-25
  • 打赏
  • 举报
回复
我只在server.xml里面配置了连接池,除此之外,什么也没放在server.xml中
lanchong512 2005-04-25
  • 打赏
  • 举报
回复
看看server.xml是不是定义了两次?
Leemaasn 2005-04-24
  • 打赏
  • 举报
回复
不明白,我这边只有启动一次,可能是你的Tomcat配置有问题。
yigerenzhu 2005-04-23
  • 打赏
  • 举报
回复
谁能告诉我怎么发表文章和问问题啊,我在这呆了那么久了,
我连怎么发文章和问问题都不知道,那个高手能告诉我一下啊??先谢谢了
yeno 2005-04-23
  • 打赏
  • 举报
回复
怎么会呢,没人理我?

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧