读书人

tomcat服务器中自启动以致quartz定时被

发布时间: 2012-12-05 14:13:29 作者: rapoo

tomcat服务器中自启动导致quartz定时被触发两次
这两天发现部署到tomcat中的quartz定时任务每回都被执行了两次,但是在myeclipse执行时又不会,后来搜了网上,才发现该问题只发生于部署在tomcat服务器上,由tomcat的自启动导致。

导致该问题的原因是你的tomcat的conf目录中的server.xml有如下配置


<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">

<Context path="" docBase="C:\Program Files\Tomcat 6.0\webapps\XXX\" workDir="C:\Program Files\Tomcat 6.0\webapps\XXX\" />

其中第一行告诉tomcat,在启动的时候加载webapps下的所有项目工程文件,第二行又让tomcat再加载了一遍(一般情况下配置第二行,主要是由于想域名访问时将工程名去掉的原因配置),这种情况下会导致工程中的quartz定时被两次触发,执行两边。



因此修改方法如下


<Host name="localhost" appBase=""

unpackWARs="false" autoDeploy="false"

xmlValidation="false" xmlNamespaceAware="false">

<Context path="" docBase="C:\Program Files\Tomcat 6.0\webapps\XXX\" workDir="C:\Program Files\Tomcat 6.0\webapps\XXX5xun5mi\" />

将第一行中的appbase中的值去除,且autodeploy属性值设置为false,因此该行不会导致任何工程项目的加载。

读书人网 >开源软件

热点推荐