今天在用spring裏面的@Scheduled執行定時任務,可是發現到觸發定時任務的時間點總會執行兩次。開始一直覺得是spring配置出了問題。後面換了一臺主機,在裏面的tomcat跑了程序,只執行了一次。後面能夠定位了,說明代碼和spring配置是沒有問題的,是tomcat配置出了問題。後面在網上查了一些資料,定位到是之前本身修改了service.xml致使的。配置以下:spring
<Host name="localhost" appBase="/wls/apps" unpackWARs="false" autoDeploy="true">tomcat
<Context path="" docBase="/wls/apps/backup" reloadable="true"></Context>app
這樣配置至關於tomcat容器加載了兩次應用。後面將appBase="/wls/apps" 改成appBase=""問題成功解決了。ui
之前本身也是這樣配置tomcat的,正納悶爲何請求的url後面加不加上應用名都能請求應用,如:url
hostIP:8080 和hostIP:8080/backup都能請求應用,原來tomcat裏面原本就加載了兩個的應用。加上應用名對應的是appBase下面應用,不加應用名對應的是docBase。spa
關於appBase和docBase的區別,你們能夠參考http://blog.csdn.net/liuxuejin/article/details/9104055.net
http://blog.csdn.net/jierui001/article/details/4168872xml