为何在tomcat 的启动过程中,一个实现了 ServletContextListener 接口的类会被调用两次。。。

joeqi 2004-08-20 05:08:39
调试环境: windows2000 + tomcat 5.0.25

定义了一个类:
public class InfoContextListener implements ServletContextListener
{
...
public void contextInitialized(ServletContextEvent event)
{
System.out.println("InfoContextListener :contextInitialized ... begin");
...
}
...
}

我在web.xml中即如如下内容如下内容:
<listener>
<listener-class>Server.InfoContextListener</listener-class>
</listener>

在tomcat 的启动过程中在两处地方出现了 InfoContextListener :contextInitialized ... begin
分别在
“ 2004-8-20 17:01:34 org.apache.catalina.core.StandardHost start
信息: XML validation disabled ”
后及
“2004-8-20 17:01:48 org.apache.catalina.core.StandardHostDeployer install
信息: Installing web application at context path /ServerTest from URL file:E:\program\s
everSoft\jakarta-tomcat-5.0.25\webapps\ServerTest”
出现。。。 初始化方法不是只调用一次吗? 为何又有上述情况呢? 请教各位大侠啊。。。。


...全文
450 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
山东大汉 2004-08-24
  • 打赏
  • 举报
回复
我也碰到这个问题:
<Context path="" docBase="server" />时会启动再次,
并且localhost:8080和localhost:8080/server都可以访问。
关注
joeqi 2004-08-21
  • 打赏
  • 举报
回复
似乎是因为tomcat中的一个host必须有一个ROOT的web服务,
当path="" 时 当前的host 中的ROOT就重定向与server的服务。。。
同时另外也创建了一个server的服务。。
当前的host的情况可以在 http://localhost:8080/manager/list 中看到

不知道上述描述是否正确? 望各位大虾指教。。。。

joeqi 2004-08-21
  • 打赏
  • 举报
回复
今天 我在 server.xml 中删去这个wenb服务的context

把context写在 \conf\Catalina\localhost\server.xml 中
内容如下:
<?xml version='1.0' encoding='utf-8'?>
<Context path="" docBase="server" debug="0" privileged="true">
</Context>

在此 若我把 path="" 改为 path="/server" 则问题消除。。
但不改的话问题依旧。。。

请教各位大侠。。 这是何故呢??
joeqi 2004-08-20
  • 打赏
  • 举报
回复
0210(DBoy) :因为容器启动了多个Servlet实例

请问为何容器启动了多个Servlet实例?
webapps 里只有那一个web服务。。。
世宝宝 2004-08-20
  • 打赏
  • 举报
回复
因为容器启动了多个Servlet实例
张海霖 2004-08-20
  • 打赏
  • 举报
回复
关注

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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