今天中午楼主本来打算午睡前测试下项目里的一个spring定时任务,测完就睡觉的。结果到现在也没睡成,问题刚刚解决....
遇到的问题就是定时任务总是被执行两次,开始是怀疑自己的程序有问题,各种改发现还不行,然后求助度娘,
发现问题所在,原因就是tomcat/conf/server.xml的配置方式有问题:
tomcat启动时首先会发布appBase指定的目录下的项目(这里默认是tomcat\webapps),如果你的server.xml配置文件里还有下面这样一段context配置,tomcat还会将这里docBase属性指定的项目目录也进行发布
也就是说如果你的appBase指定目录下有你要发布的项目,server.xml文件的context属性中也配置了你要发布的项目,你的项目就会被发布两次,定时任务也就会被执行两次。
解决办法很简单:要么去掉appBase下的项目war包和文件目录,要么就是去掉下面的那一段context配置,确保项目只发布一次