SpringMVC 定时任务执行两次问题的解决方案
2015-12-28 10:31
344 查看
我在配置SpringMVC定时任务的时候,发现定时任务执行两次,后来查阅资料说是定时任务被初始化了两次。我查阅了很多资料吧,最后是改了tomcat的server.xml,解决的问题。具体如下。
将<Host appBase="webapps" autoDeploy="false" name="localhost" unpackWARs="true">中的appBase="webapps"属性置为空,即appBase=""。可以解决问题。具体原理不详(大意是这个配置appBase和配置定时任务的配置文件都会实例化定时任务,所以导致实例化两次,在后续继续研究中,若有进展我会写在评论下面)。但这样又会有另外一个问题,就是tomcat不受限制可以访问任意路径的文件,因为appBase为空了。所以我又做了如下更改,也能解决实例化两次的问题<Host
appBase="D:\SCS_SSH_DEV_ENV\apache-tomcat-7.0.54\webapps" autoDeploy="false" name="localhost" unpackWARs="true">。将appBase的值赋值为绝对路径。但是这又将导致在Linux下或是路径改变的情况下出现问题。但目前我只研究到了这里,以后若有更好的解决方案,我会写在评论上。我还是希望可以抛砖引玉,大家一起想想是否有别的更好的办法!
将<Host appBase="webapps" autoDeploy="false" name="localhost" unpackWARs="true">中的appBase="webapps"属性置为空,即appBase=""。可以解决问题。具体原理不详(大意是这个配置appBase和配置定时任务的配置文件都会实例化定时任务,所以导致实例化两次,在后续继续研究中,若有进展我会写在评论下面)。但这样又会有另外一个问题,就是tomcat不受限制可以访问任意路径的文件,因为appBase为空了。所以我又做了如下更改,也能解决实例化两次的问题<Host
appBase="D:\SCS_SSH_DEV_ENV\apache-tomcat-7.0.54\webapps" autoDeploy="false" name="localhost" unpackWARs="true">。将appBase的值赋值为绝对路径。但是这又将导致在Linux下或是路径改变的情况下出现问题。但目前我只研究到了这里,以后若有更好的解决方案,我会写在评论上。我还是希望可以抛砖引玉,大家一起想想是否有别的更好的办法!
相关文章推荐
- Java线程篇(六):线程池
- Java线程篇(五):Timer和TimerTask
- myeclipse中java文件头注释格式设置
- Eclipse 项目中的包路径变成文件夹目录形式了
- 浅谈 Java 字符串
- 2.0Tonmcat高级配置和jDK的安装配置
- 【转】7 Tips to Speed Up Eclipse
- Java线程篇(四):线程的中断、让步、睡眠、合并
- Java线程篇(三):线程协作:生产者与消费者问题
- java servlet结合mysql搭建java web开发环境
- Java线程篇(二):线程同步(synchronized和volatile)
- java线程篇(一)线程安全与不安全
- java设计模式----迭代子模式
- JDK学习之AbstractStringBuilder接口&&StringBuffer&&StringBuilder
- Java新手问题集锦
- 偏执却管用的10条Java编程技巧
- Java解惑
- java 反射
- java.lang.IllegalStateException: Already connected
- 最好的8个 Java RESTful 框架