首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

Tomcat 启动两次的有关问题(ServletContextListener的contextInitialized被执行两次的问

2013-11-11 
Tomcat 启动两次的问题(ServletContextListener的contextInitialized被执行两次的问...??? (这么做的目的

Tomcat 启动两次的问题(ServletContextListener的contextInitialized被执行两次的问

...

??? (这么做的目的就是为了将hello应用设为根,访问IP时就直接访问该应用)

??? 4、hello下有一个 servlet(目的是为了系统在启动时执行某些初始化的操作),该servlet里存在init()方法,目前该方法里只打印“hello word”字符串;

???? 5、hello 应用的 web.xml 部分配置信息如下:

<servlet>

??? <servlet-name>HelloServlet</servlet-name>

??? <servlet-class>HelloServlet</servlet-class>

??? <load-on-startup>1</load-on-startup>

</servlet>

?

问题:

??? 在启动 tomcat5 时,控制台窗口会打印出两行“hello word”字符串?

?

问题原因:

??? 因为hello应用本来就放在Tomat的默认webapp目录下(tomcat在启动时肯定会加载1次),然后又在server.xml中做了配置,为了达到访问根就可以访问hello应用(这样tomcat就又加载1次);结果,Tomcat就会加载两次。

?

解决办法:

??? 办法1、不要将 hello 应用放在Tomat的默认webapp目录下,把它移出去,然后在server.xml中修改docBase的值为hello应用在新位置的绝对路径就可以了;

??? 办法2、删除掉server.xml中 Context 的手动配置,这样就不会加载两次,因为hello应用在webapp下,所以在访问时,就只能是: 这样来访问了。

热点排行