tomcat下Spring定时器重复执行问题

1、最近在自己的项目中部署定时器时发现定时器重复执行的问题,经过上网搜索,以为是spring的配置文件导致重复实例化,本人也相信网友说法,对配置文件做了各种修改和优化,最终还是无果。。。
2、继续搜索发现是因为tomcat的server.xml文件导致的,配置文件如下:

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_access_log" suffix=".txt"
           pattern="%h %l %u %t "%r" %s %b" />
  <Context docBase="test" path="/" reloadable="true" />
</Host>

3、这几行代码问题是什么?是appBase="webapps"和docBase="emall",原因是tomcat加载完appBase="webapps"之后又去加载docBase,因此造成加载两次项目的问题。

4、找到问题的根源,下面讲解决办法:

将 appBase="webapps"改成appBase="webroot",将docBase="test" 改成项目的绝对路径docBase="/app/tomcat/webapps/test" ,重启tomcat,问题解决!!

<Host name="localhost"  appBase="webroot" unpackWARs="true" autoDeploy="true">  
  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
        prefix="localhost_access_log" suffix=".txt"  
        pattern="%h %l %u %t "%r" %s %b" />  
  <Context docBase="/app/tomcat/webapps/test" path="/" reloadable="true" />  
</Host>  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。