Java相关

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

2018-01-07  本文已影响95人  虎兔龙蛇

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>  
上一篇下一篇

猜你喜欢

热点阅读