Tomcat反复加载Spring配置文件

Tomcat有时候会重复加载配置文件,这是由于server.xml配置不当造成的。

现象:

quartz定时执行了两遍(其它配置文件其实也加载了两遍)

server.xml配置:


     

 
  

原理:

在Web环境里,会使用ContextLoader构造ApplicationContext后,压进ServletContext。

由ContextLoaderListener或ContextLoaderServlet,在Web应用启动时完成。

出现上述问题的原因是tomcat加载玩appBase="webapps"之后又去加载docBase,因此造成加载两次项目的问题。
解决:
当然解决办法有很多,主要是在server.xml配置上做手脚:
1、撤销掉标签,但是URL中需要加入项目web路径

  

2、在Tomcat下新建newWebapps,然后修改server.xml  

     
优点:不影响Eclipse的集成部署
注意:可能会引发问题,找不到manager和host-manager目录,把这两个目录拷贝到新指向的目录即可

3、新建目录myapps平级于webapps,然后修改server.xml  

     

4、在webapps目录下新建目录myapp,然后修改server.xml

     

类似问题:http://grokbase.com/t/tomcat/users/02cy9aaq8n/application-context-loaded-twice


参考:http://www.myexception.cn/web/665108.html

你可能感兴趣的:(web)